【发布时间】:2021-07-20 19:03:05
【问题描述】:
我正在尝试将纵向数据集与包含两个变量的横截面数据集合并。 ID 可用于合并。
我的两个数据框看起来像这样:
id <- c(1, 2, 3, 4, 5)
var1 <- c(1, 2, 1, 1, 2)
var2 <- c(2, 2, 1, 1, 2)
df1 <- c(id, var1, var2)
和
id <- c(1, 1, 1, 2, 2, 2, 3, 3, 3)
age <- c(22, 24, 26, 58, 60, 62, 35, 37, 39)
xvar <- c(5, 5, 5, 7, 7, 7, 1, 1, 1)
df2 <- c(id, age, xvar)
我使用以下代码来组合两个数据框:
the_df <- bind_rows(df1, df2) %>% group_by(id) %>%
arrange(id)
然而,它所做的只是在 df1 的所有变量中添加带有 NA 的新行,并且只有 df2 中的值如下:
|id|age|xvar|var1|var2|
|--|---|----|----|----|
| 1| 22| 5 |NA |NA |
| 1| 24| 5 |NA |NA |
| 1| 26| 5 |NA |NA |
| 1| NA| NA |1 | 1 |
| 2| 58| 7 |NA |NA |
| 2| 60| 7 |NA |NA |
| 2| 62| 7 |NA |NA |
| 2| NA| NA |2 |1 |
相反,我只希望 df2 中的值跟随 paneldata 中的 id,而不是添加另一个 id 行。结果应该是这样的:
|id|age|xvar|var1|var2|
|--|---|----|----|----|
| 1| 22| 5 |1 |1 |
| 1| 24| 5 |1 |1 |
| 1| 26| 5 |1 |1 |
| 2| 58| 6 |2 |1 |
| 2| 60| 6 |2 |1 |
| 2| 62| 6 |2 |1 |
希望任何人都可以在这里帮助我!非常感谢。
【问题讨论】: