R:可以在mutate()(dplyr包)中使用exist()函数

  • 本文关键字:exist 函数 dplyr mutate r dplyr
  • 更新时间 :
  • 英文 :


我想创建一个新变量,以防它不存在。如果它存在,则无需更改任何内容,但如果不存在,我想创建此变量并为其提供 NA 值。我尝试使用 dplyr 包的突变函数来做到这一点,但结果我只得到了 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

有谁知道如何解决这个问题?甚至可以用存在()来完成吗?提前非常感谢。

您可以使用

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

最新更新