3 回答

TA貢獻1829條經(jīng)驗 獲得超13個贊
隨便按什么排序(例如,mpg,問題尚不清楚)
mt <- mtcars[order(mtcars$mpg), ]
然后使用by函數(shù)獲取每組中的前n行
d <- by(mt, mt["cyl"], head, n=4)
如果希望結(jié)果為data.frame:
Reduce(rbind, d)
編輯: 處理關(guān)系比較困難,但是如果需要所有關(guān)系:
by(mt, mt["cyl"], function(x) x[rank(x$mpg) %in% sort(unique(rank(x$mpg)))[1:4], ])
另一種方法是根據(jù)其他一些信息(例如,
mt <- mtcars[order(mtcars$mpg, mtcars$hp), ]
by(mt, mt["cyl"], head, n=4)

TA貢獻1111條經(jīng)驗 獲得超0個贊
dplyr 絕招
mtcars %>%
arrange(desc(mpg)) %>%
group_by(cyl) %>% slice(1:2)
mpg cyl disp hp drat wt qsec vs am gear carb
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
2 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
3 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
5 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
6 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
- 3 回答
- 0 關(guān)注
- 584 瀏覽
添加回答
舉報