使用变量名称创建新列

20

我有一个包含多个列的数据框,想要添加一个新列,并将其命名为之前定义好的变量名。例如:

df <- data.frame("A" = c(1, 2, 3, 4), "B" = c("a", "c", "d", "b"))
Variable <- "C"

这是一个函数的一部分,其中变量将会发生变化,而不是每次都指定:

df$C <- NA
我希望能够有一行代码,使得“Variable”成为额外列的名称。
2个回答

35

尝试使用[而不是$

> df[, Variable] <- NA
> df
  A B  C
1 1 a NA
2 2 c NA
3 3 d NA
4 4 b NA

6
将变量设为缺失值:df[[Variable]] <- NA - Phil
如果您要使用一个整数变量,您需要包含 as.character 使其正常工作: df[, as.character(Variable)] <- NA 否则,您将会收到以下错误提示: new columns would leave holes after existing columns - David M

0
在数据框名称也被存储在变量中的情况下,这可能会很有帮助。
df <- data.frame("A" = c(1, 2, 3, 4), "B" = c("a", "c", "d", "b") )
Variable<-"C"
dfname<-"df"
df<-within ( assign(dfname  , get(dfname) ),
             assign(Variable, NA          )
           )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接