【发布时间】:2016-09-09 18:44:03
【问题描述】:
我有两个数据框:
df1 <- data.frame(index = c(rep(2,5), rep(3,8), rep(4,6), rep(5,9)),
start = c(0:4, 0:7, 0:5, 0:8),
end = c(1:5, 1:8, 1:6, 1:9),
v1= rep(1,28))
df2 <- data.frame(index = c(rep(2,5), rep(3,7), rep(4,6), rep(5,6)),
v1 = rnorm(24))
假设index 列代表一个人的不同观察。
在df1 的这个例子中,我们有一个 id 为 2 和 5 观察的人,
id 为 3 的人有 8 个观察值,依此类推。
我现在想用df2 中的v1 值替换df1 中v1 的值。 df2 的观测值有时比 df1 少,例如适用于 3 和 5 人。
合并的方式应该是 df2 的 v1 被用于第一次观察,如果没有更多的观察可用,则应该替换 NAs。
应保留 df1 框架的结构,但应将 v1 替换为 df2 中的结构。
【问题讨论】:
-
您如何知道第一个数据集中的哪些行将第二个数据集中的信息放在其中?它只是基于数据集的顺序(所以组末尾的任何 NA)?
-
@aosmith 确切地说,NA 应该在每个组的末尾,