通过因子子集应用带有两个参数的函数

时间:2019-04-01 08:15:47

标签: r

我想在另一列内的特殊代码之后,在两列值之间执行bartlett.test,我想在所有组上应用此函数并将其运行到Rmarkdown中,并将所有结果存储到数据中。帧。因此,这是我的数据的一个简短示例(我的第一列中有更多组)。

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))

result_list <- by(data1, data1$moda, function(sub_data) {
 res <- t.test(sub_data$t0, sub_data$t14, mu=0, alt="two.sided",     
            paired = TRUE, conf.level = 0.95)
  output <- c(t_stat=unname(res$estimate), p_value=res$p.value)
  })

 result_matrix <- do.call(rbind, result_list)

 result_matrix

有人给了进行t.test的方式,但是我知道执行bartlett.test。也许我可以通过wilcox.test了解它是如何工作的。

t.test between two columns following a specific code on a third column

0 个答案:

没有答案