dplyr: эффективный способ выбора n строк столбца, расположенных на разных столбцах - PullRequest
0 голосов
/ 19 декабря 2018

Есть ли лучший способ сделать это?Особенно выделение 10 строк столбца hp без использования двух отдельных функций, как это.Я проверил, используя 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 голосов
/ 19 декабря 2018
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...