我正在尝试在 R 中创建我的第一个自定义函数(耶!)。我现在有一些类似的东西,但我认为它可以改进。
基本上,我想在 R 中创建自己的自定义表,可以通过 xtable 运行最终报告。我希望表格的每一列都遵循这种格式:
group1mean、group1sd、group2mean、group2sd、t 值、p 值。
目前,我的功能是这样做的。但是,它会产生我想留空的列名(例如,V3 和 V4),我想让它遍历多个因变量并将结果作为新行自动附加到矩阵中。现在,我必须手动为每个因变量编写一行代码(在下面的示例中,DV 是 PWB、SWB 和 EWB。
到目前为止,这是我的代码:
data <- read.delim("~/c4044sol.txt", header=T)
library(psych)
proc.ttest <- function(dv,group,decimals) {
x1 <- describeBy((dv), (group), mat=TRUE)
stat1 <- t.test((dv) ~ (group))
output1 <- c(paste (round(x1$mean[1], digits=(decimals)),"(", round(x1$sd[1], digits= (decimals)), ")", sep =" "),
paste (round(x1$mean[2], digits=(decimals)), "(", round(x1$sd[2], digits=(decimals)), ")", sep =" "),
round(stat1$statistic, digits=2), round(stat1$p.value, digits=3))
return(output1)
}
toprow <- c("M (SD)", "M (SD)", "t", "p")
outtable <- rbind(toprow,
proc.ttest(data$PWB, data$college, 2),
proc.ttest(data$SWB, data$college, 2),
proc.ttest(data$EWB, data$college, 2))
colnames(outtable) <- c("College graduate", "Less than college graduate", "", "")
row.names(outtable) <- c("", "PWB", "SWB", "EWB")
library(xtable)
xtable(outtable)
所以重复一遍,我想禁止列名“V3”和“V4”(将它们留空)并使代码在变量列表上自动运行。这些事情中的任何一个都可能吗?谢谢你的时间。