微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 R 无法识别我添加到数据框中的新列?

如何解决为什么 R 无法识别我添加到数据框中的新列?

我正在 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 格式引入。感谢您的帮助。

解决方法

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

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

n_MONTH <- df$MONTH[1:96]

或者:

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。