Почему тестовая функция Уэлча (тестирование односторонних пакетов) в R не принимает выборочные значения типа «фактор»? - PullRequest
0 голосов
/ 19 декабря 2018

Я хочу запустить тест Уэлча в R следующим образом:

library(onewaytests)
welch.test(avg_all ~ Hochjagd, data = hj_all, alpha = 0.05, na.rm = TRUE)

Он не работает и возвращает сообщение об ошибке:

*Error in welch.test(...) 
  The group variable must be a factor.*

Я непонять это, потому что групповая переменная на самом деле имеет фактор типа.Проверял это тысячу раз.Я также попытался изменить тип с помощью функции as.factor().

Кадр данных в ASCII:

structure(list(LMT_Date = structure(c(34L, 35L, 36L, 37L, 38L, 
39L, 41L, 42L, 43L, 44L, 45L, 46L, 48L, 49L, 50L, 51L, 52L, 53L, 
55L, 56L, 57L, 58L, 59L, 60L, 62L, 63L, 64L, 65L, 66L, 67L, 69L, 
70L, 71L, 72L, 73L, 74L), .Label = c("2018-08-01", "2018-08-02", 
"2018-08-03", "2018-08-04", "2018-08-05", "2018-08-06", "2018-08-07", 
"2018-08-08", "2018-08-09", "2018-08-10", "2018-08-11", "2018-08-12", 
"2018-08-13", "2018-08-14", "2018-08-15", "2018-08-16", "2018-08-17", 
"2018-08-18", "2018-08-19", "2018-08-20", "2018-08-21", "2018-08-22", 
"2018-08-23", "2018-08-24", "2018-08-25", "2018-08-26", "2018-08-27", 
"2018-08-28", "2018-08-29", "2018-08-30", "2018-08-31", "2018-09-01", 
"2018-09-02", "2018-09-03", "2018-09-04", "2018-09-05", "2018-09-06", 
"2018-09-07", "2018-09-08", "2018-09-09", "2018-09-10", "2018-09-11", 
"2018-09-12", "2018-09-13", "2018-09-14", "2018-09-15", "2018-09-16", 
"2018-09-17", "2018-09-18", "2018-09-19", "2018-09-20", "2018-09-21", 
"2018-09-22", "2018-09-23", "2018-09-24", "2018-09-25", "2018-09-26", 
"2018-09-27", "2018-09-28", "2018-09-29", "2018-09-30", "2018-10-01", 
"2018-10-02", "2018-10-03", "2018-10-04", "2018-10-05", "2018-10-06", 
"2018-10-07", "2018-10-08", "2018-10-09", "2018-10-10", "2018-10-11", 
"2018-10-12", "2018-10-13", "2018-10-14", "2018-10-15", "2018-10-16", 
"2018-10-17", "2018-10-18", "2018-10-19", "2018-10-20", "2018-10-21", 
"2018-10-22", "2018-10-23", "2018-10-24", "2018-10-25", "2018-10-26", 
"2018-10-27", "2018-10-28", "2018-10-29", "2018-10-30", "2018-10-31", 
"2018-11-01", "2018-11-02", "2018-11-03", "2018-11-04", "2018-11-05", 
"2018-11-06", "2018-11-07", "2018-11-08", "2018-11-09", "2018-11-10", 
"2018-11-11", "2018-11-12", "2018-11-13", "2018-11-14", "2018-11-15", 
"2018-11-16", "2018-11-17", "2018-11-18", "2018-11-19", "2018-11-20", 
"2018-11-21", "2018-11-22", "2018-11-23", "2018-11-24", "2018-11-25", 
"2018-11-26", "2018-11-27", "2018-11-28", "2018-11-29", "2018-11-30", 
"2018-12-01", "2018-12-02", "2018-12-03", "2018-12-04"), class = "factor"), 
    Hochjagd = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("vor", 
    "während", "nach"), class = "factor"), avg_all = c(1918.91431664079, 
    1958.59161270704, 1943.42119746377, 1919.61883514493, 1888.03457905138, 
    1868.48768344775, 1905.36424456522, 1929.89157894737, 1938.80094480519, 
    1917.32204166667, 1929.34389910814, 1974.60524878382, 1979.3855009058, 
    2017.49352148033, 2037.69110144928, 2005.39961865942, 1944.08541666667, 
    1963.42487228261, 1981.12408889752, 1984.8183125, 1992.47176799459, 
    2005.64372785829, 2021.46912540258, 1994.77369851259, 1889.05900119617, 
    1878.51739797864, 1969.27260451505, 1941.81968982867, 1960.20487582879, 
    1945.79714244851, 1911.10294449067, 1966.57925819985, 1917.95861651411, 
    1862.41568459191, 1839.2464092296, 1844.21481311976), sd = c(302.935354423065, 
    297.09228341052, 318.436185235744, 284.934632613952, 290.36735584095, 
    294.627508992803, 286.996745571378, 300.358306547239, 340.61703721055, 
    333.140511834407, 317.811301218844, 275.773343644329, 216.831634846418, 
    196.83951042667, 204.205120859081, 179.038183307471, 276.233323705295, 
    183.454966891403, 199.790534924586, 255.63374364214, 218.337941792593, 
    177.817136512301, 182.707158229499, 250.604143350362, 283.351544774299, 
    286.450468294609, 218.489990733471, 241.892896132878, 180.23053255905, 
    270.221799228572, 287.365517635919, 210.175973924019, 255.979393151456, 
    308.826333186338, 321.534831210151, 326.170998748959), se = c(67.7384045277965, 
    66.4318541296556, 71.204495668284, 63.7133207668726, 64.9281146107236, 
    67.5921861940394, 64.1744232418814, 68.906921320654, 76.1642849497366, 
    74.4924830520807, 71.0647673542997, 61.6647942771129, 48.4850275189003, 
    44.0146525971813, 45.6616531594464, 40.0341548443574, 61.7676489455743, 
    41.021777677915, 44.6745217352419, 57.161442812658, 50.0901591481356, 
    41.9119010130073, 43.0644901851342, 57.4925334577267, 65.0053025877531, 
    65.7162444013737, 50.1250415674916, 55.4940362843998, 41.3477198929167, 
    61.9931323778463, 65.9261711175381, 48.2176752997388, 58.7257003355824, 
    70.8496198664984, 73.7651492670239, 74.8287590452866)), .Names = c("LMT_Date", 
"Hochjagd", "avg_all", "sd", "se"), row.names = c(NA, -36L), vars = "LMT_Date", drop = TRUE, class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"))

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

onewaytests 2.0 теперь выпущен.Эта версия совместима с Tibble.Это решает проблему ..

0 голосов
/ 19 декабря 2018

Это похоже на ошибку в пакете onewaytests или dplyr.Ваши данные в "Tibble".Функции для данных должны работать на нем, но onewaytests::welch.test эквивалентно hj_all[,"Hochjagd"].Для кадра данных это даст столбец, а для столбца - еще один столбец, содержащий столбец.Это сбивает с толку onewaytests.

Обходной путь - преобразовать ваши данные в фрейм данных, тогда он будет работать:

welch.test(avg_all ~ Hochjagd, data = as.data.frame(hj_all), alpha = 0.05, na.rm = TRUE)

Существует два возможных исправления этой ошибки.Самый простой - это изменения в пакете onewaytests.Если вместо того, чтобы делать эквивалент hj_all[,"Hochjagd"], он будет эквивалентен hj_all[["Hochjagd"]], тогда он будет работать как для таблиц tbls, так и для фреймов данных.

Другое исправление было бы сложнее: оно изменило бы или табли, или кадры данных, чтобы они обрабатывали hj_all[,"Hochjagd"] совместимо.Был спор об этом в прошлом году (см. https://stat.ethz.ch/pipermail/r-package-devel/2017q3/001896.html),, и я не думаю, что это, вероятно, будет принято.

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