在R中使用mapply时将t.test的输出保存到数据帧
我有两个类似的数据帧在R中使用mapply时将t.test的输出保存到数据帧,r,statistics,R,Statistics,我有两个类似的数据帧 a b c 1 2 3 2 3 3 1 2 3 使用相同的列名。我正在使用 mapply(t.test, df1, df2) 输出比较两个数据帧之间的a、b和c类型列的t.text的结果。这将产生(实际结果): 等等(我在每个数据帧中有大约180列数据)。我需要将列的名称及其对应的p值存储在矩阵中。在另一列中存储哪个数据帧包含较高的值也很有帮助。帮助?试试这个: mapply(function(x, y) t.test(x
a b c
1 2 3
2 3 3
1 2 3
使用相同的列名。我正在使用
mapply(t.test, df1, df2)
输出比较两个数据帧之间的a、b和c类型列的t.text的结果。这将产生(实际结果):
等等(我在每个数据帧中有大约180列数据)。我需要将列的名称及其对应的p值存储在矩阵中。在另一列中存储哪个数据帧包含较高的值也很有帮助。帮助?试试这个:
mapply(function(x, y) t.test(x,y)$p.value, df1, df2)
# on my sample(/dummy) data.frames
# a b c
# 0.009963864 0.009963864 0.020204103
如果您想要2列格式的data.frame格式,可以使用
堆栈
将其包装起来,如下所示:
stack(mapply(function(x, y) t.test(x,y)$p.value, df1, df2))
# values ind
# 1 0.009963864 a
# 2 0.009963864 b
# 3 0.020204103 c
t.tests的结果实际上存储在一个列表中,因此您可以使用访问器
调用$p.value
。啊,太好了!非常感谢。如果您想在保存p值的同时保存t统计量,该怎么办?
stack(mapply(function(x, y) t.test(x,y)$p.value, df1, df2))
# values ind
# 1 0.009963864 a
# 2 0.009963864 b
# 3 0.020204103 c