r - 在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
有没有一种简单的方法可以在 R 中使用类似的工具来做到这一点dplyr
?
解决方案
一个更简单的选择是根据“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
推荐阅读
- python - 如何在 tkinter 中绑定按钮
- java - Springfox 3.0 泛型类型
- python - decimal.getcontext().prec 在 Jupyter Notebook 中的行为不一致
- python - 将 C++ for 循环转换为 python
- linux - Plink SSH 调用 Linux 软件
- python - 我可以将列表传递给 asyncio.gather 吗?
- java - 如何使用 volley 从 andorid 中的数据模型回收器视图中获取此信息?
- react-native - FlatList 的推荐项目限制
- java - 如何使用 Java 和 SQLite 将任务分配给 Android Studio 应用程序中的团队
- python - TypeError:“int”对象在 Python 嵌套列表中不可下标