Как рассчитать средние значения столбцов и удалить некоторые строки в R? - PullRequest
0 голосов
/ 17 июня 2020

Когда у меня есть фрейм данных, например;

    C1  C2  C3  C4  C5
R1  27  38  94  40  4
R2  69  16  85  2   15
R3  30  35  64  95  6
R4  20  33  77  98  55
R5  20  44  60  33  89
R6  12  88  87  44  38

, и я хочу вычислить среднее значение от столбца C4 до C5. После этого я просто хочу сохранить строки, превышающие 50.

Поскольку только строки R4 и R5 соответствуют условиям, мой окончательный результат должен быть:

    C1  C2  C3  C4  C5  Average C4:C5
R4  20  33  77  98  55       77
R5  20  44  60  33  89       61

Как я могу это сделать это?

1 Ответ

1 голос
/ 17 июня 2020

Вы можете использовать:

subset(transform(df, Avg = (C4 + C5)/2), Avg > 50)

#   C1 C2 C3 C4 C5  Avg
#R3 30 35 64 95  6 50.5
#R4 20 33 77 98 55 76.5
#R5 20 44 60 33 89 61.0

Или в dplyr:

library(dplyr)
df %>% mutate(Avg = (C4 + C5)/2) %>% filter(Avg > 50)

Если есть много столбцов, которые вы хотите учитывать для вычисления среднего значения, вы можете используйте rowMeans.

cols <- paste0('C', 4:5)
df$Avg <- rowMeans(df[cols])
subset(df, Avg > 50)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...