【发布时间】:2023-04-09 01:12:02
【问题描述】:
我有一个包含不同组、年份及其值的数据框,例如:
data <- data.frame(
group = c(rep('A', 120), rep('B', 120)),
year = rep(c(rep('2013-2014', 40), rep('2014-2015', 40), rep('2015-2016', 40)), 2),
value = rnorm(240)
)
对于每个组中的每一年,我都想运行一个 t 检验,看看这些值是否与前几年有显着差异(我一直在使用函数 t.test(x, y, var.equal = TRUE)一次性完成)
我想返回一个数据框以及 p 值,或者最好是使用 gtools::stars.pval() 生成的重要星号。所以要返回如下内容
group year significance
A 2013-2014 NA
A 2014-2015 **
A 2015-2016 ***
B 2013-2014 NA
B 2014-2015
B 2015-2016
在上述情况下,“A”在 2014-2015 年和 2013-2014 年之间的差异 p 值介于 0.001 和 0.01 之间,而 A 在 2015-2015 年和 2014-2015 年之间的差异 p 值是
无法保证每个组的年数相同。
最好、最快的方法是什么?我希望我可以按组和年份使用 dplyr 和 group_by 来做到这一点?
【问题讨论】:
标签: r statistics dplyr