Как отладить код в R для получения стандартного отклонения переменной по группе с помощью Dplyr? - PullRequest
0 голосов
/ 28 июня 2019

Используя пакет "nycflights13", я беру на себя вопрос новичка.Я хочу получить стандартное отклонение задержки прибытия (arr_delay) перевозчиком.На самом деле понятия не имею, почему мой код не работает.Он создает итоговую таблицу с двумя столбцами: carrier и моей новой переменной sd_arr_delay, но все значения для sd_arr_delay равны NA.

Я уже проверил таблицу перед суммированием, поэтому функции фильтра и group_by работают.

library(tidyverse)
library(nycflights13)
flights <- nycflights13::flights
flights_2c <- flights %>% 
   filter(origin == "JFK" & dest == "BOS") %>%
   group_by(carrier) %>% 
   summarise(sd_arr = sd(as.numeric(arr_delay)))

Нет сообщения об ошибке, только столбец, заполненный NA.

1 Ответ

1 голос
/ 28 июня 2019

Сделайте это вместо:

flights_2c <- flights %>% 
   filter(origin == "JFK" & dest == "BOS") %>%
   group_by(carrier) %>% 
   summarise(sd_arr = sd(as.numeric(arr_delay),na.rm = TRUE))

В столбце arr_delay есть значения NA, что означает, что все вычисления sd в конечном итоге вернут NA, если вы не скажете sd удалить их при выполнении вычисления.

Будьте внимательны к аргументам na.rm во множестве команд R, таких как mean, median и т. Д. Если в ваших входных данных возможно есть значения NA, вы, вероятно, захотите использовать этот аргумент .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...