Применить тест с двумя выборками пропорций по строкам

#r #purrr #categorical-data

#r #мурлыканье #категориальный-данные

Вопрос:

Я пытаюсь провести серию тестов с двумя выборками пропорций по всем строкам фрейма данных. Вот пример первых 3 строк, где x — количество ответов «да», а n — общее количество.

 df <- data.frame("x1" = c(370,450,490), "x2" = c(150, 970, 120), "n1" = c(1500, 2700, 4500), "n2" = c(3000, 4900, 3200))
  

Я использую функцию «prop.test», которая сравнивает две пропорции, как показано ниже:

   test <- prop.test(x = c(370, 150), n = c(1500, 3000), correct = "FALSE")
  

Я пытался:

 Map(prop.test, x = c(df$x1, df$x2), n = c(df$n1, df$n2), correct = "FALSE")
  

но он возвращает выходные данные для 6 строк биномиальных тестов с 1 выборкой вместо выходных данных для 3 строк биномиальных тестов с 2 выборками. Должно быть, я неправильно использую Map. Есть идеи?

Ответ №1:

pmap позволяет выполнять итерацию по каждой строке входных данных.frame.

Попробуйте:

 library(purrr)
purrr::pmap(df,~{prop.test(x = c(..1, ..2), n = c(..3, ..4), correct = "FALSE")}) 
  

или

 purrr::pmap(df,~with(list(...),prop.test(x = c(x1, x2), n = c(n1, n2), correct = "FALSE"))
  
 
[[1]]

    2-sample test for equality of proportions without continuity correction

data:  c(..1, ..2) out of c(..3, ..4)
X-squared = 378.44, df = 1, p-value < 2.2e-16
alternative hypothesis: two.sided
95 percent confidence interval:
 0.1734997 0.2198336
sample estimates:
   prop 1    prop 2 
0.2466667 0.0500000 


[[2]]

    2-sample test for equality of proportions without continuity correction

data:  c(..1, ..2) out of c(..3, ..4)
X-squared = 11.22, df = 1, p-value = 0.0008094
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.04923905 -0.01334598
sample estimates:
   prop 1    prop 2 
0.1666667 0.1979592 


[[3]]

    2-sample test for equality of proportions without continuity correction

data:  c(..1, ..2) out of c(..3, ..4)
X-squared = 130.66, df = 1, p-value < 2.2e-16
alternative hypothesis: two.sided
95 percent confidence interval:
 0.06015674 0.08262104
sample estimates:
   prop 1    prop 2 
0.1088889 0.0375000