通过公共列合并dfs导入R中的选定列
我想通过常用的“名称”列合并通过公共列合并dfs导入R中的选定列,r,tidyverse,tidyr,R,Tidyverse,Tidyr,我想通过常用的“名称”列合并data.frames,但只选择“PA”列 期望的: names S1 S2 S3 S4 PA_df2 PA_df3 PA_df4 1 Obs1 1 2 0 0 2 3 30 2 Obs2 2 50 100 10 4 5 50 3 Obs3 2 40 135 17 5 7 70 4 Obs4 0 3
data.frames
,但只选择“PA”列
期望的:
names S1 S2 S3 S4 PA_df2 PA_df3 PA_df4
1 Obs1 1 2 0 0 2 3 30
2 Obs2 2 50 100 10 4 5 50
3 Obs3 2 40 135 17 5 7 70
4 Obs4 0 30 256 73 6 8 80
5 Obs5 1 22 303 74 7 7 70
使用类似SQL的联接,这是否有效:
library(dplyr)
df %>% inner_join(df2 %>% select(names, 'PA_df2' = PA)) %>%
inner_join(df3 %>% select(names, 'PA_df3' = PA)) %>%
inner_join(df4 %>% select(names, 'PA_df4' = PA))
Joining, by = "names"
Joining, by = "names"
Joining, by = "names"
names S1 S2 S3 S4 PA_df2 PA_df3 PA_df4
1 Obs1 1 2 0 0 2 3 30
2 Obs2 2 50 100 10 4 5 50
3 Obs3 2 40 135 17 5 7 70
4 Obs4 0 30 256 73 6 8 80
5 Obs5 1 22 303 74 7 7 70
names S1 S2 S3 S4 AB.x PA.x AB.y PA.y AB PA
1 Obs1 1 2 0 0 0 2 100 3 110 30
2 Obs2 2 50 100 10 30 4 300 5 310 50
3 Obs3 2 40 135 17 30 5 300 7 310 70
4 Obs4 0 30 256 73 40 6 400 8 410 80
5 Obs5 1 22 303 74 2 7 200 7 210 70
names S1 S2 S3 S4 PA_df2 PA_df3 PA_df4
1 Obs1 1 2 0 0 2 3 30
2 Obs2 2 50 100 10 4 5 50
3 Obs3 2 40 135 17 5 7 70
4 Obs4 0 30 256 73 6 8 80
5 Obs5 1 22 303 74 7 7 70
library(dplyr)
df %>% inner_join(df2 %>% select(names, 'PA_df2' = PA)) %>%
inner_join(df3 %>% select(names, 'PA_df3' = PA)) %>%
inner_join(df4 %>% select(names, 'PA_df4' = PA))
Joining, by = "names"
Joining, by = "names"
Joining, by = "names"
names S1 S2 S3 S4 PA_df2 PA_df3 PA_df4
1 Obs1 1 2 0 0 2 3 30
2 Obs2 2 50 100 10 4 5 50
3 Obs3 2 40 135 17 5 7 70
4 Obs4 0 30 256 73 6 8 80
5 Obs5 1 22 303 74 7 7 70