在R中添加相应的数据框列
Add corresponding columns of data frame in R
这是我的示例数据。
df1 <- tibble(a=1:4,
b=1:4,
c=1:4,
d=1:4,
e=1:4)
# A tibble: 4 x 5
a b c d e
<int> <int> <int> <int> <int>
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
df2 <- tibble(b=1:4,
d=1:4,
e=1:4)
b d e
<int> <int> <int>
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
我想添加共同的列,以便获得这样的数据框
a b c d e
<int> <dbl> <int> <dbl> <dbl>
1 1 2 1 2 2
2 2 4 2 4 4
3 3 6 3 6 6
4 4 8 4 8 8
有没有一种简单的方法可以使用 dplyr
等工具在 R 中执行此操作?
一个更简单的选择是根据 'df2' 的列名对第一个数据集 'df1' 进行子集化(假设 'df2' 中的所有列都存在于 'df1' 中) ,添加这些并分配回 'df1'
中的那些
df1[names(df2)] <- df1[names(df2)] + df2
或使用dplyr
library(dplyr)
df1 %>%
mutate(c_across(names(df2)) + df2)
-输出
# A tibble: 4 x 5
# a b c d e
# <int> <int> <int> <int> <int>
#1 1 2 1 2 2
#2 2 4 2 4 4
#3 3 6 3 6 6
#4 4 8 4 8 8
这是我的示例数据。
df1 <- tibble(a=1:4,
b=1:4,
c=1:4,
d=1:4,
e=1:4)
# A tibble: 4 x 5
a b c d e
<int> <int> <int> <int> <int>
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
df2 <- tibble(b=1:4,
d=1:4,
e=1:4)
b d e
<int> <int> <int>
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
我想添加共同的列,以便获得这样的数据框
a b c d e
<int> <dbl> <int> <dbl> <dbl>
1 1 2 1 2 2
2 2 4 2 4 4
3 3 6 3 6 6
4 4 8 4 8 8
有没有一种简单的方法可以使用 dplyr
等工具在 R 中执行此操作?
一个更简单的选择是根据 'df2' 的列名对第一个数据集 'df1' 进行子集化(假设 'df2' 中的所有列都存在于 'df1' 中) ,添加这些并分配回 'df1'
中的那些df1[names(df2)] <- df1[names(df2)] + df2
或使用dplyr
library(dplyr)
df1 %>%
mutate(c_across(names(df2)) + df2)
-输出
# A tibble: 4 x 5
# a b c d e
# <int> <int> <int> <int> <int>
#1 1 2 1 2 2
#2 2 4 2 4 4
#3 3 6 3 6 6
#4 4 8 4 8 8