#r #dplyr
#r #dplyr
Вопрос:
Моя проблема в том, что я не понимаю, почему я не могу вычислить среднее и sd переменной total.
Шаги, которые я сделал:
- Я отфильтровал набор данных, чтобы видеть данные только с 1 по 7 день.
- Я суммировал значения из переменной «x» и создал новую переменную «Total»
У меня есть набор данных:
name day x
ab 1 3
cd 3 5
fg 7 2
ll 3 1
kk 9 0
Мой код:
df_changed <- df%>%
dplyr::group_by(`name`, `day` )%>%
dplyr::filter(`day`>= 1, `day`<= 7) %>%
dplyr::summarise(Total=sum(x, na.rm = TRUE))%>%
dplyr::summarise(mean = mean(Total), sd = sd(Total)) %>%
view(df_changed)
Комментарии:
1. После группировки каждая группа имеет только 1 строку, то есть одно значение, стандартное отклонение одного значения равно NA, или вы не вычисляете SD для одного значения.
2. Добавление к комментарию Картика: чтобы решить эту проблему и вычислить среднее и SD по всем строкам, которые вы можете включить
ungroup()
после первойsummarise()
.
Ответ №1:
Возможно, вы захотите вычислить среднее и SD x
вместо Total
, как указано. Попробуйте этот код
library(tidyverse)
df_changed <- df%>%
dplyr::group_by(`name`, `day` )%>%
dplyr::filter(`day`>= 1, `day`<= 7) %>%
dplyr::summarise(Total=sum(x, na.rm = TRUE),
mean = mean(x, na.rm = T),
sd = sd(x, na.rm =T))