【问题标题】:Insert i th vector number into data frame column name - R将第 i 个向量编号插入数据框列名 - R
【发布时间】:2017-11-06 17:53:39
【问题描述】:

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

【问题讨论】:

  • 你需要使用这种格式,而不是$版本...df[,paste0("close.sma.n", sma[i])]

标签: r loops


【解决方案1】:

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

所以:

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

【讨论】:

    猜你喜欢
    • 2016-07-08
    • 1970-01-01
    • 2021-08-12
    • 2021-04-09
    • 2021-10-17
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 2021-05-01
    相关资源
    最近更新 更多