从这段代码开始,我想计算7个时间点之间的差异:
data <- out %>%
group_by(tests0, GROUP) %>%
summarise(
all = list(across(starts_with("score")) %>%
{
tibble(
means = data.frame(map(., ~ mean(.x, na.rm = TRUE)) %>% set_names(., str_replace(names(.), "\\D+", "mean"))),
stderrs = data.frame(map(., ~ std.error(.x, na.rm = TRUE)) %>% set_names(., str_replace(names(.), "\\D+", "stederr"))),
ttest1 = data.frame(possibly(~ reduce(., ~ t.test(.x, .y, paired = TRUE))["estimate"], NA)(.)),
ttest2 = data.frame(possibly(~ reduce(., ~ t.test(.x, .y, paired = TRUE))["p.value"], NA)(.))
)
})
)>%
unnest(all)
# Groups: tests0 [6]
tests0 GROUP means$mean0 $mean7 stderrs$stederr0 $stederr7 ttest1$estimate ttest2$p.value
<fct> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 ADAS_CogT0 CONTROL 12.6 13.6 0.525 0.662 -1.15 0.00182
2 ADAS_CogT0 TRAINING 14.0 12.6 0.613 0.570 1.40 0.00295
3 PVF_T0 CONTROL 32.1 31.3 1.22 1.45 0.498 0.636
4 PVF_T0 TRAINING 31.6 34.3 1.37 1.51 -2.48 0.0102
5 ROCF_CT0 CONTROL 29.6 30.3 0.893 0.821 -0.180 0.835
6 ROCF_CT0 TRAINING 30.1 29.5 0.906 0.929 0.489 0.615
7 ROCF_IT0 CONTROL 12.8 12.2 0.563 0.683 0.580 0.356
8 ROCF_IT0 TRAINING 10.9 12.3 0.735 0.768 -1.44 0.0238
9 ROCF_RT0 CONTROL 12.1 12.5 0.725 0.797 -0.370 0.598
10 ROCF_RT0 TRAINING 10.5 10.9 0.746 0.742 -0.534 0.370
11 SVF_T0 CONTROL 35.5 34 1.05 1.15 1.42 0.107
12 SVF_T0 TRAINING 34.1 32.9 1.04 1.16 0.962 0.231
或者更好的方法是添加一个列来报告组(CONTROL and TRAINING)
之间的平均列差。你知道我应该在上面的代码中输入什么吗?
这里是数据集,如果有人想尝试找出一个可能的解决方案。
先谢了
3条答案
按热度按时间q3qa4bjr1#
使用此数据:
iaqfqrcu2#
创建
data
时,列的形式为data.frame
。因此,在执行
diff
之前,我们可能需要对这些data.frame
列执行unpack
esyap4oy3#
不确定这是否是您要找的?