проблема с парным t-тестом: не все аргументы имеют одинаковую длину - PullRequest
0 голосов
/ 19 апреля 2019

Я хочу сделать парный t-тест с фреймом данных. Я думаю, что я сгруппировал их правильно, но не знаю, почему он сообщает об ошибке: Ошибка в complete.cases (x, y): не все аргументы имеют одинаковую длину.

centre_g - это мой фрейм данных, содержащий всю информацию, которую я хочу использовать в своем анализе. Парный t-тест - верный способ сделать это.

str(centre_g)
# Classes ‘grouped_df’, ‘tbl_df’, ‘tbl’ and 'data.frame':   
# 24 obs. of  17 variables 
# (I will only list two variables that is used for my anaysis):
# $ BA: Factor w/ 2 levels "after","before": 2 1 2 1 2 1 2 1 2 1 ...
# $ Pb: num  437 1183 1465 3105 NA ...

Я использовал для извлечения «до» и «после» для «Pb», то есть я извлек два вектора во фрейме данных и выполнил парный t-тест, он отлично работает

(tResult <- t.test(before$Pb, after$Pb, paired = TRUE)) 

но когда я попытался выполнить парный t-тест непосредственно в моем фрейме данных, в нем появилось сообщение об ошибке, упомянутое в вопросе

(tResult <- t.test(Pb ~ BA, data = centre_g, paired = TRUE))

Я пробовал несколько раз, сгруппированные данные или отсортированные данные. Я не знаю, что не так со вторым методом. Это потому, что значения NA, которые я получил в моем фрейме данных? но первый метод подойдет?

Поскольку в моем фрейме данных содержится гораздо больше информации, ожидающей анализа, я не хочу извлекать векторы для каждого из них. Я надеюсь сделать мой парный t-тест на моем фрейме данных. Кто-нибудь может мне помочь?

Деталь centre_g:

structure(list(day = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), SAMPLE.No = structure(c(1L, 
13L, 15L, 17L, 19L, 21L, 23L, 25L, 27L, 3L, 5L, 7L, 9L, 11L, 
1L, 13L, 15L, 17L, 19L, 21L, 23L, 25L, 27L, 3L), .Label = c("s1", 
"s1.2", "s10", "s10.2", "s11", "s11.2", "s12", "s12.2", "s13", 
"s13.2", "s14", "s14.2", "s2", "s2.2", "s3", "s3.2", "s4", "s4.2", 
"s5", "s5.2", "s6", "s6.2", "s7", "s7.2", "s8", "s8.2", "s9", 
"s9.2"), class = "factor"), weir = c(1L, 1L, 2L, 2L, 3L, 3L, 
4L, 4L, 5L, 5L, 6L, 6L, 7L, 7L, 8L, 8L, 9L, 9L, 10L, 10L, 11L, 
11L, 12L, 12L), BA = structure(c(2L, 1L, 2L, 1L, 2L, 1L, 2L, 
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 
1L), .Label = c("after", "before"), class = "factor"), centre.bank = structure(c(2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("bank", "centre"), class = "factor"), 
    Pb = c(436.65, 1182.93, 1465.21, 3105.36, 39.1, 1493.91, 
    NA, 165.28, 38.83, 351.48, 80.26, 47.39, 151.27, 434.01, 
    -97.58, 240.83, 56.8, 40.24, 38.8, NA, 41.13, 38.93, 44.39, 
    39.05), Pb.Error = c(16.41, 30.01, 51.26, 102.44, 27.21, 
    79.63, NA, 13.82, 48.78, 16.71, 19.1, 21.43, 18.65, 21.41, 
    232.7, 18.83, 12.19, 15.28, 11.94, NA, 22.24, 14.01, 10.56, 
    9.63), Zn = c(542.52, 981.83, 1234.78, 7554.41, 529.38, 5240.01, 
    NA, 542.65, 526.08, 820.87, 649.7, 793.42, 707.23, 1204.3, 
    -34.56, 209.86, 172.5, 130.29, 187.96, NA, 234.57, 137.38, 
    165.21, 135.05), Zn.Error = c(19.5, 29.31, 48.12, 161.54, 
    42.36, 144.56, NA, 23.37, 52.5, 26.18, 33.33, 39.87, 31.89, 
    35.79, 44.83, 17.24, 15.11, 21.25, 19.76, NA, 26.65, 18.67, 
    15.12, 13.97), Fe = c(3731.23, 14239.54, 23774.52, 52349.37, 
    3896.63, 13311.26, NA, 2756.96, 3511.06, 2664.12, 2383.16, 
    2785.75, 2834.59, 6288.39, -321.14, 14704.05, 3825.8, 5017.52, 
    13181.67, NA, 31190.39, 8516.23, 14130, 18348.01), Fe.Error = c(106.82, 
    229.87, 432.59, 884.29, 239.03, 496.1, NA, 111.92, 283.9, 
    102.44, 137.69, 161.02, 137.66, 172.32, 187.37, 274.6, 140.64, 
    240.97, 310.62, NA, 565.41, 265.57, 260.75, 291.45), Mn = c(110.65, 
    1337.08, 1126.82, 3495.03, 410.99, 5267.34, NA, 314.42, 338.8, 
    591.99, 308.46, 427.59, 573.87, 896.23, 277.82, 421.17, 969.72, 
    535.07, 879.97, NA, 742.39, 350.62, 379.98, 834.36), Mn.Error = c(43.39, 
    93.86, 133.34, 297.53, 125.08, 410.14, NA, 63.25, 155.08, 
    68.16, 82.1, 96.34, 88.97, 89.89, 1470.88, 78, 92.24, 118.6, 
    112.32, NA, 134.87, 91.97, 72.7, 91.12), Cr = c(-38.15, 50.8, 
    25.9, 53.32, 21.52, 132.82, NA, 8.13, 5.46, 35.07, 93.78, 
    88.18, 71.23, 47.26, 32.91, 25.49, 10.36, 19.99, 5.13, NA, 
    32.61, 22.13, 47.5, -5.82), Cr.Error = c(9.05, 16.41, 7.7, 
    9.99, 4.58, 33.88, NA, 7.84, 2.86, 9.18, 8.75, 7.55, 7.98, 
    9.62, 6.38, 5.54, 6.72, 4.6, 6.5, NA, 6.64, 4.62, 9.51, 11.3
    ), Ca = c(32195.21, 46510.98, 21723.24, 17820.74, 14639.01, 
    45937.9, NA, 37840.08, 4704.64, 37705.36, 28625.21, 25115.24, 
    41579.19, 91829.16, 19752.96, 14605.4, 34654.73, 15798.87, 
    13873.07, NA, 22901.14, 4097.09, 12053.38, 276525.69), Ca.Error = c(211.2, 
    326.69, 160.54, 142.76, 120.63, 304.76, NA, 219.4, 66.28, 
    225.41, 187.03, 169.88, 226.15, 378.53, 149.92, 125.47, 208.18, 
    127.73, 127.4, NA, 168.31, 64.51, 128.02, 908.61)), row.names = c(1L, 
4L, 6L, 8L, 10L, 12L, 13L, 16L, 17L, 19L, 21L, 23L, 26L, 28L, 
29L, 32L, 34L, 36L, 38L, 39L, 42L, 43L, 46L, 48L), class = "data.frame")

Я заинтересован в проведении парного t-теста в столбце «Pb», пытаясь сравнить «до» и «после» (как показано в столбце «ВА»). Каждый "Вейр" будет индивидуальным.

1 Ответ

0 голосов
/ 19 апреля 2019

Я работал над нашим после дня.Я нашел это потому, что ряд данных АН.В некоторых местах мне не удавалось взять пробы, поэтому кажется, что есть целая строка данных NA (кроме столбцов факторов).

Чтобы убедиться, что фрейм данных имеет всю длину (вместо 24из 23) и не пропускает данные NA, добавьте na.rm = FALSE при подстановке фрейма данных в centre_g.

centre_g <- subset(HM_selected, centre.bank == "centre", na.rm = FALSE)

(я думаю, что дал правильный centre_g в моем наборе данных вопросов, но иногда я простополучил 23 данных, добавив na.rm, чтобы убедиться, как обрабатываются данные NA)

При выполнении парного t-теста также добавьте na.rm = FALSE.

(tRESULT <- t.test(Pb ~ BA, data = centre, paired = TRUE, na.rm = FALSE)

иотлично работает для меня.

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