stderr в dplyr (R): что я делаю не так?

#r #dplyr

#r #dplyr

Вопрос:

Я пытаюсь вычислить стандартную ошибку по годам для переменной AcrePrice. Я запускаю функцию stderr (также пробовал с sd(acrePrice) / count(n)). Оба они возвращают ошибку.

Вот соответствующий код:

 library(alr4)
library(tidyverse)

MinnLand %>% group_by(year) %>% summarize(sd(acrePrice)/count(n))
MinnLand %>% group_by(year) %>% summarize(stderr(acrePrice))
  

В чем проблема? Среднее значение и SDs легко вычисляются.

Ответ №1:

Проблема с первой функцией заключается count в том, что для нее требуется data.frame, вместо этого это было бы n()

 library(dplyr)
MinnLand %>%
     group_by(year) %>%
     summarize(SE = sd(acrePrice)/n(), .groups = 'drop')
  

-вывод

 # A tibble: 10 x 2
#    year    SE
#   <dbl> <dbl>
# 1  2002 2.25 
# 2  2003 0.840
# 3  2004 0.742
# 4  2005 0.862
# 5  2006 0.849
# 6  2007 0.765
# 7  2008 0.708
# 8  2009 1.23 
# 9  2010 0.986
#10  2011 1.95 
  

Согласно ?stderr

stdin(), stdout() и stderr() являются стандартными соединениями, соответствующими вводу, выводу и ошибке на консоли соответственно (и не обязательно для файловых потоков).

Мы можем использовать std.error из plotrix

 library(plotrix)
MinnLand %>%
       group_by(year) %>%
       summarize(SE = std.error(acrePrice))
  

-вывод

 # A tibble: 10 x 2
#    year    SE
#   <dbl> <dbl>
# 1  2002  53.4
# 2  2003  38.6
# 3  2004  37.0
# 4  2005  41.5
# 5  2006  39.7
# 6  2007  36.3
# 7  2008  34.9
# 8  2009  47.1
# 9  2010  42.1
#10  2011  63.6
  

Комментарии:

1. @AmoghJoshi stderr это базовая функция R для другой цели

2. @AmoghJoshi stdin(), stdout() and stderr() are standard connections corresponding to input, output and error on the console respectively (and not necessarily to file streams).

3. Если вы хотите использовать стандартную ошибку, она должна быть из пакета

4. Ооо. Хорошо. Спасибо!

5. @AmoghJoshi я использовал std.error , но значения отличаются, потому что алгоритм вычисления отличается от того, который вы использовали