簡體   English   中英

R 根據列值從其他 dataframe 添加行到 dataframe

[英]R add rows to dataframe from other dataframe based on column value

在我的論文中,我嘗試使用兩種類型的調查(英國選舉研究 (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  |

基本上,我要做的是將兩者組合成一個 dataframe,如下所示:

| 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  |

我在谷歌上搜索了很多關於連接和合並的信息,但我無法以正確的方式解決它。 據我了解,我相信我應該“按”年份變量加入,但這是正確的嗎? 我怎樣才能防止它占用大量 memory 來執行計算(BES 的實際數據集約為 30k,BSA 的實際數據集約為 130k)? 是否有使用 dplyr 或 R 中的 data.tables 的解決方案?

任何幫助深表感謝!!!

這不是“合並”(或連接)操作,它只是行連接。 在 R 中,這是通過rbind完成的(它使用不同的方法適用於matrixdata.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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM