r - 仅使用 R 中表 A 中的列合并表 A 和 B
问题描述
我有 2 个数据框 A 和 B,其中 A 中的列是 B 中的列的子集,如下所示
表 A:
[A] [B] [C]
1 2 3
4 5 6
表 B:
[A] [B] [C] [D]
7 8 9 10
11 12 13 14
我希望得到这样的输出:
[A] [B] [C]
1 2 3
4 5 6
7 8 9
11 12 13
我应该使用什么样的代码/函数来直接获得这样的结果?
我试过rbind.fill
了,但我从 A 和 B 中得到了所有不同的列,以后我可以删除其中的一些。但是,我的实际数据包含如此多的列,因此简单地键入所有不需要的列并不是最佳选择。
如果尝试一次性获得我想要的结果真的很不明智,那么欢迎使用其他快速解决方法=D。谢谢你。
解决方案
我们可以找到B
其中存在的列A
,然后rbind
是那些列。
cols <- names(B)[names(B) %in% names(A)]
rbind(A, B[cols])
# A B C
#1 1 2 3
#2 4 5 6
#3 7 8 9
#4 11 12 13
如果两者A
和B
可以有不同的列,我们可以使用intersect
来查找公共列
cols <- intersect(names(B), names(A))
rbind(A[cols], B[cols])
数据
A <- structure(list(A = c(1L, 4L), B = c(2L, 5L), C = c(3L, 6L)), class
= "data.frame", row.names = c(NA,
-2L))
B <- structure(list(A = c(7L, 11L), B = c(8L, 12L), C = c(9L, 13L),
D = c(10L, 14L)), class = "data.frame", row.names = c(NA,
-2L))
推荐阅读
- json - 使用 Unix 从 Json 中提取数据
- javascript - 如何在容器中的截断句子旁边放置“ ...查看更多”文本-Javscript
- c++ - std::size_t 与 size_type 作为参数和函数返回类型
- terraform - 创建后无法获取 Terraform 实例 IP 地址
- python - PyTorch nn.Sequential 和 nn.ModuleList 有什么区别?
- postgresql - Geopandas to_postgis 需要几个小时
- import - 成功安装 conda 后无法导入 Geopandas
- reactjs - AdditionalProps = {} 是什么意思?
- php - 我正在构建一个 API,但在比较数组时遇到了问题
- flutter - SingleTickerProviderStateMixin AppBar 错误