R中读取数据的问题

时间:2015-04-03 03:10:08

标签: r statistics

我通常手动将数据输入到R中,但我有这个数据集,其中n = 27个元素。我使用data = read.table("HW6.txt", header = TRUE)阅读了数据。工作环境显示了数据,X=23,19,...Y=27.1,22.1,...

我可以让我的最小方块很好:

results=lm(Y~X, data) and 
lm(formula = Y ~ X, data = data)

# Coefficients: (Intercept) X
# 1.800 1.004

但无论出于何种原因,我都会拨打X或Y进行进一步操作,即

sum(X) 
# Error: object 'X' not found, 

mean(X) 
# Error in mean(X) : object 'X' not found

那么,为了让它正常工作,我还需要做些什么吗?

2 个答案:

答案 0 :(得分:7)

可以按以下方式访问各个元素

data = read.table("HW6.txt", header = TRUE)
data$X
sum(data$X)

答案 1 :(得分:3)

当您输入数据"手动"在R中,您在.GlobalEnv中创建变量,即打开R时遇到的工作空间。

当您使用read.table等将数据加载到R中时,您正在创建一个data.frame,用于存储这些变量。正如@ Amrita的答案显示的那样,您可以使用[$提取从该data.frame中提取变量。

因此,您的选项(即,将创建与您之前的工作流程最相似的行为的选项)如下:

d <- read.table("HW6.txt")
X <- d$X
Y <- d$Y
rm(d)

然后您可以将变量称为XY,而无需执行我之前描述的任何操作。

但是!它可能只是更好地纠正您的工作流程并开始使用数据框中的$提取,而不是依赖于您之前所做的便利。

(注1:在交互式会话中,您还可以使用with(data, ...)使用data.frame中的对象执行表达式,而无需使用$[提取。\ n&#39;通常不鼓励在脚本/包/ etc中使用它。)

(注意2:要重新创建您已经习惯的行为,您可以使用attach(data),这会将data.frame添加到R的搜索路径。但是,不鼓励这样做。因为它可能会产生意想不到的后果。其中,如果修改.GlobalEnv中的X,它不会在原始data.frame中修改它,因此如果你试图调用任何一个对象,就会产生混淆。)< / p>