如何使用子集仅从R中的数据集中获取第一个xx观测值?

use*_*092 1 regression r dataset

如果我有一个包含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) )
Run Code Online (Sandbox Code Playgroud)

但是subset使用rownum失败了.有什么建议??

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

Pau*_*tra 5

一个简单,可重复的例子:

dat = data.frame(A = runif(100), B = runif(100))
lm(A~B, dat)
Run Code Online (Sandbox Code Playgroud)

你发现这失败了:

> lm(A~B, dat, subset = (rownum < 50))
Error in eval(expr, envir, enclos) : object 'rownum' not found
Run Code Online (Sandbox Code Playgroud)

那是因为rownum您的数据中没有列.有两种解决方案:

  1. 添加一rownum列:

    dat[["rownum"]] = 1:nrow(dat)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 或者在分析之前执行子集操作:

    dat_subset = dat[1:2070,]
    lm(A~B, dat_subset)
    
    Run Code Online (Sandbox Code Playgroud)

正如评论者提到的那样,选择2可能是最好的.