【发布时间】:2016-10-28 11:33:23
【问题描述】:
假设我有 N 个相同(行数和列数相同)的数据框:
set.seed(2)
df1 <- data.frame(replicate(100,rnorm(100)))
df2 <- data.frame(replicate(100,rnorm(100)))
dfN <- data.frame(replicate(100,rnorm(100)))
我想在 N 个数据帧的每个“单元”中应用一个函数(在本例中为 t.test()),以便返回一个单独的数据帧,其中包含执行的每个单元测试的 t 值.本质上,我想获取每个数据帧的第一个单元格,
one <- df1[1,1]
two <- df2[1,1]
Nth <- dfN[1,1]
在这些单元格上执行t.test(),
first.cell.each <- cbind.data.frame(one,two,Nth)
t.test(first.cell.each, mu=0)
并在所有单元格中重复此操作(在本例中为 10000)。
编辑:澄清
【问题讨论】:
-
@ZheyuanLi,对不起,我应该更清楚。行数和列数相同。
-
您使用了错误的数据结构。将 data.frames 组合成一个数组并使用 apply。
-
您现在可以使用新的
tidyr包来组合多个数据帧并处理它们的数据。见blog.rstudio.org/2014/07/22/introducing-tidyr