Я не могу вычислить среднее и sd в dplyr

#r #dplyr

#r #dplyr

Вопрос:

Моя проблема в том, что я не понимаю, почему я не могу вычислить среднее и sd переменной total.

Шаги, которые я сделал:

  1. Я отфильтровал набор данных, чтобы видеть данные только с 1 по 7 день.
  2. Я суммировал значения из переменной «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))