这可能是一个快速修复!我试图将我的矢量的第i个位置放入我的数据框列名称中。我正在尝试使用paste0输入第i个数字。
sma <- 2:20
> sma
[1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
# Place i number from sma vector to data frame column name
spx.sma <- df$close.sma.paste0("n", sma[i])
列名应为:
"close.sma.n2"
如果我打印
paste0("n", sma[i])
我获得:
> paste0("n", sma[i])
[1] "n2"
所以,如果我将其粘贴到我的数据框列名中,那么它应该是:
close.sma.n2
实现这一目标的正确方法是什么?
我实现了错误:
> spx.sma <- df$close.sma.paste0(".n", sma[i])
Error: attempt to apply non-function
答案 0 :(得分:2)
您应该将数据框视为列表。因此,请避免使用“$”运算符,而是使用[[]]。
这样:
spx.sma <- df[[paste0("close.sma.n", sma[i])]]