微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 r 中针对不同类别进行 t 检验

如何解决在 r 中针对不同类别进行 t 检验

我有一个数据集,其中包含 26 个变量和 4662 个一年多的观察结果。我想分析在特定日期之后可能发生的差异。有一个变量时间,如果它在日期之前为 0,如果在日期之后为 1。 另一个变量对我不同类型的观察进行分类

我想检查在特定日期之前和之后每个类别之间是否存在显着差异。但是我想查看的差异保存在另一个变量 number_trackers 中。 c4 是所有其他非重要变量的占位符,我不需要这个 t.test

可重现的数据框

Dataset <- data.frame = category=c("tools","finance","business","education","tools","education"),number_trackers = c(10,12,1,30,7,21),c4 = c("url1.com","ur2.com","url3.com","url4.com","url5.com","url6.com"),time = c(1,1))

如果输出是两个不同时间段的每个类别的 t 检验,那就最好了。

解决方法

带有类别的循环可能会有所帮助:

#taking the list of unique categories
categories <- unique(Dataset$category)

#Creating an empty list
output_list <- list()

#Lopping the t-test for different categories and creating a list of output
for (i in categories) {
  output_list[[i]] <- t.test(number_trackers ~ time,data = Dataset[Dataset$category == i,],paired = FALSE)
}

如果想看第一类的总结:

output_list[[categories[1]]]

编辑:

用于生成输出的汇总表

sum_tab <- as.data.frame(matrix(nrow = length(categories),ncol = 7))
colnames(sum_tab) <- c("t","df","p.value","ConfIntLower","ConfIntUpper","Mean in Gr 0","Mean in Gr 1")
rownames(sum_tab) <- categories

for (i in categories) {
  sum_tab[i,] <- with(output_list[[i]],c(statistic,parameter,p.value,conf.int,estimate))
}


write.csv(sum_tab,"Summary.csv",row.names = TRUE)

P.S.:由于可重现的示例还不够,我无法运行它来显示输出。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。