r - R根据列值将行从其他数据帧添加到数据帧
问题描述
在我的论文中,我尝试使用来自两种调查(英国选举研究(BES)和英国社会态度调查(BSA))的几个变量,并将它们组合成一个数据集。目前,我有两个数据集,一个带有 BES 数据,看起来像这样(简化版):
| year | class | education | gender | age |
| ---- | ----- | --------- | ------ | --- |
| 1992 | working | A-levels | female | 32 |
| 1992 | middle | GCSE | male | 49 |
| 1997 | lower | Undergrad | female | 24 |
| 1997 | middle | GCSE | male | 29 |
BSA 数据如下所示(再次简化):
| year | class | education | gender | age |
| ---- | ----- | --------- | ------ | --- |
| 1992 | middle | A-levels | male | 22 |
| 1993 | working | GCSE | female | 45 |
| 1994 | upper | Postgrad | female | 38 |
| 1994 | middle | GCSE | male | 59 |
基本上,我想做的是将两者组合成一个数据框,如下所示:
| year | class | education | gender | age |
| ---- | ----- | --------- | ------ | --- |
| 1992 | working | A-levels | female | 32 |
| 1992 | middle | GCSE | male | 49 |
| 1992 | middle | A-levels | male | 22 |
| 1993 | working | GCSE | female | 45 |
| 1994 | upper | Postgrad | female | 38 |
| 1994 | middle | GCSE | male | 59 |
| 1997 | lower | Undergrad | female | 24 |
| 1997 | middle | GCSE | male | 29 |
我在谷歌上搜索了很多关于连接和合并的信息,但我无法以一种正常工作的方式弄清楚。据我了解,我相信我应该加入“按”年份变量,但这是正确的吗?以及如何防止它占用大量内存来执行计算(BES 的实际数据集约为 30k,BSA 的实际数据集约为 130k)?是否有在 R 中使用 dplyr 或 data.tables 的解决方案?
任何帮助深表感谢!!!
解决方案
这不是“合并”(或连接)操作,它只是行连接。在 R 中,这是通过rbind
(适用于matrix
并data.frame
使用不同的方法)完成的。(从透视角度来看,还有cbind
,它按列连接。此处不适用。)
碱基R
rbind(BES, BSA)
# year class education gender age
# 1 1992 working A-levels female 32
# 2 1992 middle GCSE male 49
# 3 1997 lower Undergrad female 24
# 4 1997 middle GCSE male 29
# 5 1992 middle A-levels male 22
# 6 1993 working GCSE female 45
# 7 1994 upper Postgrad female 38
# 8 1994 middle GCSE male 59
其他方言
dplyr::bind_rows(BES, BSA)
data.table::rbindlist(list(BES, BSA))
推荐阅读
- sql - 从存储过程中选择特定列
- javascript - 在jQuery中连接字符串
- reactjs - 如何将动作创建者(使用调度)传递给 store.dispatch?
- python - 如何在字典中交换值(基于函数参数)
- javascript - 从浏览器窗口以编程方式给出的视觉通知
- train-test-split - 发现样本数量不一致的输入变量: [26707, 5] ,但我的样本数据范围相同
- machine-learning - Adam Optimizer 不更新值
- r - R:从 Lexicon 中的推文中查找单词,计算它们并将数字保存在带有推文的数据框中
- influxdb - Flux 中单个与多个链式 lambda 之间的性能或执行差异
- typescript - 在 Typescript 中删除对象键并返回条件类型