#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
, но значения отличаются, потому что алгоритм вычисления отличается от того, который вы использовали