Если вам нужно больше информации, чем просто среднее значение, вы можете посмотреть сводную статистику.
Давайте создадим несколько примеров данных:
library(tidyverse)
set.seed(1)
my_data <- as_tibble(matrix(runif(100), ncol = 10,
dimnames = list(rows = NULL,
cols = paste0("Var_", 1:10))))
Теперь мы можем увидеть полное резюместатистику, используя только сводку:
summary(my_data)
# Alternatively
my_data %>%
summary
Вы можете использовать функцию colMeans
из базы (или из matrixStats
из Rfast
пакетов).
my_data %>%
colMeans
Если выВы хотите использовать это только для подмножества ваших данных. Вы можете использовать функцию выбора
my_data %>%
select(Var_1, Var_2) %>%
colMeans
. Обратите внимание, что при использовании colMeans
, как указано выше, без предварительного выбора только числовых переменных, будет выброшеноошибка. summary
все равно будет работать без проблем.
РЕДАКТИРОВАТЬ:
Принимая во внимание ваш комментарий и перечитывая (обновленный) вопрос, это может быть ближе к тому, что вы ищете.
library(tidyverse)
set.seed(1)
data <- tibble(
sampleID = 1:6,
category = c("A", "B", "C", "D", "B", "A"),
element_1 = runif(6)*10,
element_2 = runif(6)*10,
element_3 = runif(6)*10,
element_4 = runif(6)*10
)
, который дает набор данных, который выглядит следующим образом:
# A tibble: 6 x 6
sampleID category element_1 element_2 element_3 element_4
<int> <chr> <dbl> <dbl> <dbl> <dbl>
1 1 A 4.97 7.80 2.52 5.06
2 2 B 9.93 7.62 4.23 7.16
3 3 C 3.77 6.16 2.02 1.51
4 4 D 4.78 0.510 5.02 4.79
5 5 B 1.67 6.96 3.14 2.58
6 6 A 6.07 9.76 9.99 6.47
Теперь мы можем просто сделать небольшое изменение и использовать функцию group_by()
data %>%
group_by(category) %>%
summarize_if(is.numeric, mean)
Который даст желаемый результат:
category sampleID element_1 element_2 element_3 element_4
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 A 3.5 5.52 8.78 6.26 5.77
2 B 3.5 5.80 7.29 3.69 4.87
3 C 3 3.77 6.16 2.02 1.51
4 D 4 4.78 0.510 5.02 4.79