R:创建名称来自变量的新列

时间:2014-08-06 16:11:03

标签: r variables dataframe

我有一个包含多个列的数据框,并希望添加一个新列并根据前一个变量命名。例如:

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

这是变量将改变的函数的一部分,而不是每次指定:

df$C <- NA

我想要一行将“变量”命名为附加列

3 个答案:

答案 0 :(得分:14)

尝试使用[代替$

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

答案 1 :(得分:0)

我正在提供有关A5C1D2H2I1M1N2O1R2T1的正确答案的其他信息。

如果您尝试使用整数变量,则需要包含as.character字符才能使这项工作有效。

例如:df[, as.character(Variable)] <- NA

否则,您将收到一条错误消息:

  

新列将在现有列之后留空

答案 2 :(得分:0)

在data.frame名称也包含在变量中的情况下,这可能会有所帮助。

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          )
           )