我想做一个新的变量,以防不存在。如果存在,则无需进行任何更改,但是如果不存在,则我想将此变量设为NA值。我尝试使用dplyr软件包的mutate函数来执行此操作,但结果只能得到NA。

library(dplyr)
df <- structure(list(var1 = c(47, 801, 660), var2 = c(11,
17, 11)), .Names = c("var1", "var2"), row.names = c(NA,
3L), class = "data.frame")


现在,我检查var2的存在。

df <- mutate(df, var2 = ifelse(exists('var2')==TRUE,var2,NA))


结果是:

  var1 var2
1   47   NA
2  801   NA
3  660   NA


但是,结果应该是(因为无需进行任何更改:

  var1 var2
1   47   11
2  801   17
3  660   11


有谁知道如何解决这个问题?甚至可以使用exist()完成吗?提前谢谢了。

最佳答案

您可以使用

mutate(df, var2 = if (exists('var2', where = df)) var2 else NA)

关于r - R:可以在mutate()(dplyr包)中使用exist()函数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28276559/

10-12 19:42