我想在另一列中的ID之后的两列中的值之间执行多个bartlett.test。
数据
structure(list(moda = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L), .Label = c("BS1", "HW1", "PG"), class = "factor"),
t0 = c(1.5, 1.5, 2, 1, 1.5, 1.2, 1, 2.4, 1.3, 1.4, 1.7, 2,
1.8, 2.3, 2.5, 2.5, 1.5, 1.5, 2, 2.1, 1.8, 1.3, 2, 1.5, 2,
3.5, 1.5, 1.7), t14 = c(1.5, 1.5, 2, 1, 1.5, 1.2, 1, 2.4,
1.3, 1.4, 5, 7, 2.5, 6.5, 5.4, 5, 6, 5.7, 7, 3.5, 4.7, 4.5,
5.9, 5, 6, 7, 6, 5.5)), class = "data.frame", row.names = c(NA,
-28L))
代码
library(dplyr)
group <- function(data1, var1, var2){
var1 <- enquo(var1); var2 <- enquo(data1$t0), var3 <- enquo(data1$t14);
data1 %>%
group_by(!!data1$moda) %>%
summarise(n = n(),
bartlett.test(var2, var3))
}
group(df = data1, var1 = data1$moda, var2 = data1$t0, var3=data1$t14)
如果可以将结果放入数据框并保留ID,那将是完美的。 编辑:最好使用split之前。而且bartlett.test需要一列带有值的列和一列带有id的列,所以我不知道该如何执行。