r语言 - 如何在数据框架列表上应用()公式.或者如何在数据帧列表上执行kruskal.test() &g



所以我有这个数据,并试图在包含数据帧的列表上做kruskal.test()

df_list <- list(
`1.3.A` = 
tibble::tribble(
~Person, ~Height, ~Weight,
"Alex",    175L,     75L,
"Gerard",    180L,     85L,
"Clyde",    179L,     79L,
"Alex",    175L,     75L,
"Gerard",    180L,     85L,
"Clyde",    179L,     79L
),
`2.2.A` = 
tibble::tribble(
~Person, ~Height, ~Weight,
"Alex",    175L,     75L,
"Gerard",    180L,     85L,
"Clyde",    179L,     79L,
"Alex",    175L,     75L,
"Gerard",    180L,     85L,
"Clyde",    179L,     79L
), 
`1.1.B` = 
tibble::tribble(
~Person, ~Height, ~Weight,
"Alex",    175L,     75L,
"Gerard",    180L,     85L,
"Clyde",    179L,     79L,
"Alex",    175L,     75L,
"Gerard",    180L,     85L,
"Clyde",    179L,     79L
)
)

我试图在这3个数据帧上执行kruskal.test,但经过数小时和数小时的尝试找到解决方案后失败。我刚来r。

失败的尝试有:

snake <- function(i){
kruskal.test(df$Height ~ df$Person, data = i)
}
snail <- lapply(df_list, "[[", snake)

df_list %>% kruskal.test(df$Height ~ df$Person)
sapply(df_list, function(i) { kruskal.test(df$Height ~ df$Person, data = i)})

Map(function(x) kruskal.test(Height ~ Person), get(df_list))
Map(function(df_list, .f(kruskal.test(Height ~ Person)))
lapply(mget(df_list), function(x) kruskal.test(Height ~ Person))
bunny <- df_list %>%
kruskal_test(df$Height ~ Person, data = .)

总结:我正试图在一组包含数据帧的列表上做kruskal.test()。如何通过lapply()Map()的公式在列表中的每个数据框中运行kruskal.test()?

您的代码引用了一个名为"df"的对象,该对象似乎不存在。此外,当使用kruskal.test和参数kruskal.test(formula, data)时,不需要在公式中引用数据帧。提供kruskal.testa"数据";参数将导致函数首先在提供的数据中搜索公式符号。换句话说,如果数据帧"x"包含列"Height"one_answers"Person",那么下面就可以了:

kruskal.test(Height ~ Person, data = x)

在您的示例中,不应该引用df。注意,下面的代码创建了一个带有参数的临时函数"随后被引用:

lapply(df_list, function(i) kruskal.test(Height ~ Person, data = i))
$`1.3.A`
Kruskal-Wallis rank sum test
data:  Height by Person
Kruskal-Wallis chi-squared = 5, df = 2, p-value = 0.08208

$`2.2.A`
Kruskal-Wallis rank sum test
data:  Height by Person
Kruskal-Wallis chi-squared = 5, df = 2, p-value = 0.08208

$`1.1.B`
Kruskal-Wallis rank sum test
data:  Height by Person
Kruskal-Wallis chi-squared = 5, df = 2, p-value = 0.08208

最新更新