Функция R для отображения только 20% самых высоких значений столбца - PullRequest
1 голос
/ 11 апреля 2020

Я новичок в R. У меня есть матрица числовых значений c и я хочу отображать только самые высокие 20% от указанного столбца c.

Любая помощь приветствуется!

Ответы [ 2 ]

1 голос
/ 11 апреля 2020

С объектом data.table вы должны выполнить:

library(data.table)
df <- as.data.table(m1)
col <- colnames(df)
m1[get(col) >= quantile(get(col), probs = .8)]

Это, вероятно, самый быстрый метод, если у вас есть объемный набор данных

0 голосов
/ 11 апреля 2020

Мы можем использовать quantile, чтобы создать логический вектор и извлечь элементы из столбца (здесь предполагается, что это первый столбец)

m1[,1][m1[,1] >= quantile(m1[,1], 0.8)]

Если это данные .frame, мы можем использовать top_frac

library(dplyr)
as.data.frame(m1) %>%
    top_frac(n = 0.2, wt = col1)

или с slice_max

as.data.frame(m1) %>%
     slice_max(col1, prop = 0.2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...