r - merge data frames by character and rowname -


i have 2 data frames this:

set.seed(1) df1 <- data.frame(v1 = rnorm(7),               v2 = c("a1", na, "a2", "a3", "a5", "a6", "a9"))   > df1            v1   v2 1  0.39956187   a1 2  0.33711756 <na> 3 -0.19583763   a2 4  0.04880812   a3 5 -2.07266374   a5 6 -0.83824743   a6 7  1.31302096   a9   df2 <- data.frame(pc1 = rnorm(5),                   pc2 = rnorm(5)) rownames(df2) <- c("a1", "a2", "a3", "a6", "a9")   > df2            pc1         pc2 a1 -0.89865755 -0.32949632 a2 -0.05709327 -0.06923935 a3 -0.44229588  0.32089049 a6 -1.51754734 -0.34285758 a9  0.99955141 -0.62749542 

df1 has column v2 contains character values match rownames of df2. has nas , may contains characters no corresponding rownames in df2 exists.

i want merge these data frames one, this:

           v1   v2           pc1         pc2 1  0.39956187   a1   -0.89865755 -0.32949632 2  0.33711756   na            na          na 3 -0.19583763   a2   -0.05709327 -0.06923935 4  0.04880812   a3   -0.44229588  0.32089049 5 -2.07266374   a5            na          na 6 -0.83824743   a6   -1.51754734 -0.34285758 7  1.31302096   a9    0.99955141 -0.62749542 

how can this. prefer dplyr (tydiverse) solution.

we can use rownames_to_column create column row names , left_join

library(tidyverse) rownames_to_column(df2, "v2") %>%                    left_join(df1, .) 

Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -