如何在 R 中使用不同的列应用 t 检验?

问题描述

我对 R 非常陌生(所以我知道我做错了什么)。但是我有 8 个样本:4 名参与者接受了两种治疗(对照、药物)并且我有多个测量值(每个测量值不同的行)。像这样:

测量 A_Ctrl B_Ctrl C_Ctrl D_Ctrl A_Drug B_Drug C_Drug D_Drug
第一次 0.1939 0.1939 0.1939 0.1939 0.1939 0.1939 0.1939 0.1939
第二个 0.1939 0.1939 0.1939 0.1939 0.1939 0.1939 0.1939 0.1939

我想添加另一列,使用配对 t 检验计算每行的 p 值。我希望代码使用代码中的列号,因为我正在考虑删除参与者,如果他们的数据看起来与我的初步数据显示的其他人不同。

我一直在查看有关堆栈溢出的其他类似问题,但似乎无法让它们起作用。这种格式的东西能用吗?

df$PValue <- t.test(df[2:5],df[6:9],alternative = "two.sided",paired=TRUE)

其中 df 是我导入到 RStudio 中的 Excel 工作表。

解决方法

如果你想从 t 测试中得到 p 值,你应该使用 $ 符号:

first_p <- t.test(df[2:5],df[6:9],alternative = "two.sided",paired=TRUE)$p.value
,

如果您想为每一行应用 t.test,您可以使用 apply :

df$PValue <- apply(df[-1],1,function(x) t.test(x[1:4],x[5:8],paired=TRUE)$p.value)

请注意,我使用了 1:45:8,因为我忽略了 df[-1] 中的第一列 (apply)。