替换列向量的缺失值

时间:2016-09-25 10:02:46

标签: r lookup missing-data categorical-data data-cleansing

在数据框中,我有两个分类变量,例如数据框qs的{​​{1}}和vr。这个数据帧非常大,但假设在df中有100个不同的级别,在模式之后不是必需的。列向量qs - 我所说的也是一个分类变量 - 有一些缺失值。

我想要做的是根据vr中相应的类别或值标记vr中存在的缺失值。

我知道先验 qs中有9个不同的类别qs缺少值。比方说,vr中某个类别的标签为qs102中此类别的标签qs中缺少值。

所以,我当时要做的是

  • 如果qs == 102中的类别/标签/值设置为vr == vr
  • 如果qs == 250中的类别/标签/值设置为vr == Greece

结束等等。

可悲的是,我的数据帧非常复杂,我不知道如何重现简单的数据帧。

1 个答案:

答案 0 :(得分:1)

假设有一个' c'在' vr'对于' qs'值3,我们可以使用data.table

library(data.table)
setDT(df)[, vr := na.omit(vr)[1] , by = qs]

目前尚不清楚OP是否希望用“' vr”的独特元素替换缺失值。对于每个''或者来自其他一些价值观。如果要替换其他一些值,请创建一个键/值数据集并加入原始数据集on' qs'

df1 <- data.table(qs = 1:4, vr = c("Serbia", "England", "Greece", "USA"))
df$qs <- as.numeric(as.character(df$qs))
setDT(df)[df1, on = "qs"][is.na(vr), vr := i.vr][, i.vr := NULL][]