我有一个调查问题答案的数据框。我想使用cohen.d
中的effsize
来估算每个响应的Cohen d效应大小。
这是我数据框的前6行:
`structure(list(id = c("HO1001", "HO1001", "HO1002", "HO1002",
"HO1003", "HO1003"), time = structure(c(1L, 2L, 1L, 2L, 1L, 2L
), .Label = c("0", "1"), class = "factor"), grit.distract = c(1,
1, 3, 2, 1, 2), grit.setback = c(5, 4, 3, 3, 4, 4), grit.obsess = c(3,
2, 2, 2, 3, 2), grit.work = c(4, 5, 3, 4, 5, 5), grit.goal = c(2,
3, 2, 1, 4, 4), grit.focus = c(3, 3, 3, 1, 2, 3), grit.finish = c(4,
4, 4, 4, 4, 3), grit.diligent = c(4, 4, 3, 4, 5, 4), grit.mean = c(3.25,
3.25, 2.875, 2.625, 3.5, 3.375)), class = c("tbl_df", "tbl",
"data.frame"), row.names = c(NA, -6L))`
我成功地将df转换为宽格式,以在摘要统计信息上使用effsize
,即平均值/总计,如下所示:
`structure(list(id = c("HO1001", "HO1002", "HO1003", "HO1004",
"HO1005", "HO1006"), pre = c(3.25, 2.875, 3.5, 2.25, NA, NA),
post = c(3.25, 2.625, 3.375, 2.5, 2.75, 2.875), change = c(0,
-0.25, -0.125, 0.25, NA, NA), highconf = structure(c(2L,
1L, 2L, 1L, NA, NA), .Label = c("0", "1"), class = "factor")), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -6L)`
`cohen.d(grit.tot$pre, grit.tot$post, na.rm = T)`
我想做的是计算每个调查项目的效果大小,即在时间0和时间1之间的沙砾分散,沙砾挫折等(请不要对我的统计方法发表评论)。鉴于我有更多这样的数据帧,并且不想单独处理它们,我相信我应该使用function
和诸如apply
这样的循环,但是我不确定如何来构造它。
答案 0 :(得分:1)
如果我了解您的问题,这可能会有所帮助。
如果您将问题第一部分中的数据框存储为dt
,请运行以下命令,以给出每个调查项目的数值。
lapply(dt[c(-1,-2)],function(x) cohen.d(x ~ dt$time))
dt[c(-1,-2)]
删除了ID列和time列,因为您不想对它们进行cohen d测试。