【问题标题】:Why is R not recognizing the new column I added into my dataframe?为什么 R 不能识别我添加到数据框中的新列?
【发布时间】:2021-03-11 04:41:35
【问题描述】:

我正在对 R 中的油价进行时间序列分析。为了完成我的一项建模任务,在每个月的石油收盘价旁边添加了一个 MONTH 列:

df <- cbind(df, MONTH=1:nrow(df))

输出成功,出来是这样的:

    OILSTOCK MONTH
1       1965     1
2       1812     2
3       1492     3
4       1289     4
5       1256     5

然后我必须对过去 12 个月的数据(总共 108 个月)进行保留样本,我这样做的方法如下:

n_OILSTOCK=OILSTOCK[1:96]
n_MONTH=MONTH[1:96]

上面的命令对 n_OILSTOCK 正常工作,但由于某种原因,我收到以下关于 n_MONTH 的错误:

> n_MONTH=MONTH[1:96]
Error: object 'MONTH' not found

我不确定为什么 R 没有将这个新的 MONTH 列识别为正确的对象。我有一个简单的方法来解决这个问题吗?原始数据以 .txt 格式引入。感谢您的帮助。

【问题讨论】:

    标签: r cbind


    【解决方案1】:

    MONTH 在您的环境中不存在。它只是您在调用cbind(df, MONTH=1:nrow(df)) 时在df 数据框中创建的列。

    要引用MONTH 作为此数据框的一列,您可以这样做:

    n_MONTH <- df$MONTH[1:96]
    

    或者:

    n_MONTH <- df[1:96, 'MONTH']
    

    如上所述,这是因为MONTH 不作为对象存在。您必须通过将其指向 df 数据框中的列来引用它。

    相比之下,OILSTOCK 确实存在于您的环境中,您可以毫无问题地执行子集操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-16
      • 1970-01-01
      • 2021-03-12
      • 1970-01-01
      • 1970-01-01
      • 2014-02-09
      • 2020-12-02
      • 1970-01-01
      相关资源
      最近更新 更多