【发布时间】:2018-06-13 10:43:42
【问题描述】:
我有两个数据框,它们都包含相同的变量和每个观察的唯一 ID。
df.1 是一个大型数据集,其中包含由 NA 表示的缺失值。这些缺失条目的值包含在 df.2 中,我想通过匹配 id 将 df.1 中的缺失值替换为 df.2 中的值。
我在这里找不到类似的问题,考虑到它们都是因子变量。
为了简单起见:如果 id 匹配 - df.1 中的缺失值应替换为 df.2 中的因子值。
df.1 <- data.frame(id = c(334,440,501,2304,2500),
v1 = c("4 dogs",NA,"3 dogs",NA,"No dogs"))
df.2 <- data.frame(id = c(440,2304),
v2 = c("4 dogs","5 dogs"))
非常感谢您的帮助。
【问题讨论】:
-
不幸的是,情况并非如此。我希望代码简单地匹配两个变量之间的 id 并将值从 df.2 替换为 df.1。 id 仅指定 df.1 中缺少的值。
-
为什么需要将它们作为两个因子变量?只需转换为
character。 -
within(merge(df.1, df.2, all = TRUE), { V1 = pmax(as.character(v1), as.character(v2), na.rm = TRUE) ; rm(v1, v2)}).... -
最后很容易转换回因子。
标签: r data-manipulation recode