我有一个包含多个列的数据框,并希望添加一个新列并根据前一个变量命名。例如:
df <- data.frame("A" = c(1, 2, 3, 4), "B" = c("a", "c", "d", "b"))
Variable <- "C"
这是变量将改变的函数的一部分,而不是每次指定:
df$C <- NA
我想要一行将“变量”命名为附加列
答案 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 )
)