我有5列-1000 +行数据,我从这个数据中提取了特定列表,基于“学生”,它变化1到13,现在我应该简化这些列表。 我想从这些数据中提取非连续的行,例如,23日,31日,38日。 我怎么能这样做?
由于
School Time Student Classroom Note
23 1 212 1 2 22
30 1 256 2 2 21
31 1 257 3 2 27
37 1 267 4 2 45
38 1 269 5 2 14
43 1 276 6 2 42
44 1 278 7 2 13
47 1 285 8 2 11
答案 0 :(得分:2)
这是一种选择所有行的方法,其中(数字)rowname与后续行的rowname之间的差异大于1:
dat <- read.table(text = "School Time Student Classroom Note
23 1 212 1 2 22
30 1 256 2 2 21
31 1 257 3 2 27
37 1 267 4 2 45
38 1 269 5 2 14
43 1 276 6 2 42
44 1 278 7 2 13
47 1 285 8 2 11", header = TRUE)
dat[c(diff(as.numeric(rownames(dat))) > 1, TRUE), ]
注意的。这也选择了最后一行(47
)。如果您要排除最后一行,请将TRUE
替换为FALSE
。
结果:
School Time Student Classroom Note
23 1 212 1 2 22
31 1 257 3 2 27
38 1 269 5 2 14
44 1 278 7 2 13
47 1 285 8 2 11
答案 1 :(得分:0)
i <- 3
DF2 <- DF[seq(from=i, to=nrow(DF), by=4),]
提取第3行,然后提取3 + 4 = 7th,7 + 4 = 11th,11 + 4 = 15,依此类推......