1

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
4

2 に答える 2

2

(数値の)行名と後続の行の行名の差が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
于 2012-12-11T10:37:55.013 に答える
0
i <- 3

DF2 <- DF[seq(from=i, to=nrow(DF), by=4),]

3 番目の行を抽出し、次は 3 + 4 = 7 番目、7 + 4 = 11 番目、11 + 4 = 15 番目などを抽出します。

于 2014-07-09T10:08:32.000 に答える