1

如果我有一个包含 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使用rownum失败。有什么建议么??

我没有计算行数的变量,我应该有吗?在这种情况下,我该怎么做?

4

1 回答 1

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列。有两种解决方案:

  1. 添加一rownum列:

    dat[["rownum"]] = 1:nrow(dat)
    
  2. 或者在分析之前进行子集操作:

    dat_subset = dat[1:2070,]
    lm(A~B, dat_subset)
    

正如评论者所提到的,选择选项 2 可能是最好的。

于 2012-10-18T10:09:58.350 回答