r 中不同类别的 t 检验

t-test in r for different categories

我有一个包含 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,0,0,0,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]]]

编辑:

用于生成输出摘要table

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.: 由于可重现的例子不充分,我无法运行显示输出。