如果我有一个包含4137个观测数据的数据集,并且我想在hsperc上进行colga回归并且仅使用前2070个观测值进行坐标,我该怎么办?
我尝试过类似的事情:
# loading data
GPA2 <- read.table("GPA2.raw", header=TRUE, na.strings=".")
# fitting model
mfit1 <- lm( formula = colgpa ~ hsperc + sat, data=GPA2, subset=(rownum<2071) )
但使用subset
的{{1}}失败了。有什么建议??
我没有一个计算行数的变量,我有这个吗?在那种情况下,我该怎么做?
答案 0 :(得分:5)
一个简单,可重复的例子:
dat = data.frame(A = runif(100), B = runif(100))
lm(A~B, dat)
这失败了,你发现:
> lm(A~B, dat, subset = (rownum < 50))
Error in eval(expr, envir, enclos) : object 'rownum' not found
这是因为您的数据中没有rownum
列。有两种解决方案:
添加rownum
列:
dat[["rownum"]] = 1:nrow(dat)
或者在分析之前执行子集操作:
dat_subset = dat[1:2070,]
lm(A~B, dat_subset)
正如评论者提到的那样,选择2可能是最好的。