将第i个向量编号插入数据框列名 - R

时间:2017-11-06 17:53:40

标签: r loops

这可能是一个快速修复!我试图将我的矢量的第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

1 个答案:

答案 0 :(得分:2)

您应该将数据框视为列表。因此,请避免使用“$”运算符,而是使用[[]]。

这样:

spx.sma <- df[[paste0("close.sma.n", sma[i])]]