根据数据框内的不同列填充列

时间:2018-06-01 20:07:29

标签: r

我有两列,a和b(列的长度约为85,000)。 b是空的,a充满了各种值。如果值在列表c中,则b需要填充“是”。如果值在列表d中,则b需要填充“否”。如果它们都不在列表中,则b可以留空或填充NA(并不重要)。现在,我有一个带if,if else和else语句的for循环。虽然这有效,但它并不快(大约需要20秒)。有没有办法用矢量运算来加速它?提前谢谢!

numpy

1 个答案:

答案 0 :(得分:0)

如果你创建了两个单独的向量,其中一个索引是a在c中,而一个索引在a中是a。

in.c <- which(df$a %in% df$c)
in.d <- which(df$a %in% df$d)

然后您可以根据这些向量更新b

df$b[in.c] <- 'Yes'
df$b[in.d] <- 'No'