dplyr:选择n个列的行的有效方法排列在不同列上

时间:2018-12-19 14:43:41

标签: r sorting select dplyr

有什么更好的方法吗?特别是选择hp列的10行,而不必像这样单独使用两个函数。我已经使用top_n(10)进行了检查,但是在使用arrange()之后却无法使用。

mtcars %>% arrange(desc(.[[3]])) %>% select(hp) %>% head(10)
#    hp
#1  205
#2  215
#3  230
#4  175
#5  175
#6  245
#7  264
#8  245
#9  150
#10 150

1 个答案:

答案 0 :(得分:1)

a <- 
  mtcars %>% 
    top_n(10, disp) %>% 
    arrange(desc(disp)) %>% 
    select(hp)

b <- mtcars %>% arrange(desc(.[[3]])) %>% select(hp) %>% head(10)


identical(a, b)
#[1] TRUE

您也可以先安排,但这会比较慢

a <- 
  mtcars %>% 
    arrange(desc(disp)) %>% 
    top_n(10, disp) %>% # same as head(10) since already sorted
    select(hp)

b <- mtcars %>% arrange(desc(.[[3]])) %>% select(hp) %>% head(10)


identical(a, b)
#[1] TRUE