首页 > 解决方案 > 如何修复“$ 运算符对原子向量无效”/正确加载数据集?

问题描述

我正在尝试帮助某人使用他们的 r 代码。据我所知,我们正在尝试加载失业数据集,将其设置为变量,然后使用 summary() + lm() 函数来显示数据?我不完全确定,因为我不知道 R 并且作业是俄语的。但是,我们似乎不能使用注释中列出的 $。我所看到的是你不能在数组/向量上使用 $ 。运行此功能的正确方法是什么?

我可以使用 getElement(variable, position) 并取回一个数字。希望意味着我们至少已经加载了数据集。

library(lmtest)
library(zoo)
df=unemployment
help(unemployment)
df=read.csv("unemployment",sep="\t",dec=".",header=TRUE)
un=unemployment[,1]
exp=unemployment[,5]
summary(lm(df$un~df$exp_1))

我假设正在发生的事情:

我们加载包含失业数据集的库。

我们将 df 分配给数据集。我们出于某种原因正在读取文件?

我们设置了 2 个变量,然后我们尝试使用 summary 和 lm 来显示某种模型。

显然,错误出在某处的分配或订单中。谢谢。

标签: rrstudio

解决方案


数据集unemployment是一个时间序列矩阵,它不是 data.frame。$仅受列表支持(包括 data.frame)。

要访问矩阵的列,请使用:

unemployment[,"UN"]

或与您提供的类似,请尝试:

library(lmtest)
library(zoo)
df=unemployment
help(unemployment)

df <- as.data.frame(df) # convert to data.frame
head(df)                # observe df
summary(lm(df$UN~df$x)) # call with right column names

推荐阅读