在id之后的两列之间的group_by之后执行bartlett.test

时间:2019-04-03 11:23:01

标签: r group-by dplyr

我想在另一列中的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的列,所以我不知道该如何执行。

0 个答案:

没有答案