我有两列数值数据,我想插入第三列汇总它们。很简单,但我想在做其他事情之前将总和分配给变量(长话短说:这些列名称将一直在变化[下个月它们可能是Col4
和{例如{1}},这是其他人将使用的代码,如果我可以将其放在顶部,我不希望这个关键步骤深埋在代码中。这就是我所拥有的:
Col5
显然,它会返回:
sumColumn <- "df$Col1 + df$Col2"
df <- cbind(data.frame("Col1"=2:5, "Col2"=5:8))
df$Col3 <- sumColumn
df
我正在寻找的是:
Col1 Col2 Col3
1 2 5 df$Col1 + df$Col2
2 3 6 df$Col1 + df$Col2
3 4 7 df$Col1 + df$Col2
4 5 8 df$Col1 + df$Col2
我可以用第三行来强制执行 Col1 Col2 Col3
1 2 5 7
2 3 6 9
3 4 7 11
4 5 8 13
变量,或者某种方式来创建变量,以便按照我想要的方式解释它?谢谢你的帮助!
答案 0 :(得分:1)
您可以使用df[,"name"]
语法通过名称引用列,例如:
df$Col3 <- df[,'Col1'] + df[,'Col2']
因此,如果您在变量n1
和n2
中有列名,则可以执行以下操作:
df$Col3 <- df[,n1] + df[,n2]
在您的计划顶部定义n1 <- 'Col1'
和n2 <- 'Col2'
,
如果以后列数名在您的数据框中发生变化,
您可以更改n1
和n2
的值,程序将继续使用新名称。
答案 1 :(得分:1)
你需要
df$Col3 = eval(parse(text=sumColumn))