如何在 R 中的数据帧的许多列上迭代命令?

问题描述 投票:0回答:1

我有一个命令:

t.test(df$gene1[1:20],df$gene1[21:40],alternative=c("two.sided"))

这会返回我的数据框中“gene1”列中两组之间的双边 t 检验: 第 1 组:第 1-20 行中的值 第 2 组:第 21-40 行中的值。

我想在 99 列上迭代此命令,以返回基因 1-99 中两组的 t 检验的 p 值。

我该怎么做?

是否有更好的命令来返回单列中特定值的双边 t 检验,其中不包括列的特定名称?

我已经尝试过:

lapply(df[-1], function(x) t.test(df$gene1[1:20],df$gene1[21:40],alternative=c("two.sided")))

返回 99 个 t 检验,但显然它们都在测试同一列:gene1。

r statistics
1个回答
0
投票

您的

lapply
正在处理每一列,但您忽略了列数据。你说
function(x)
,所以使用
x

lapply(df[-1], function(x) t.test(x[1:20], x[21:40], alternative="two.sided"))
© www.soinside.com 2019 - 2024. All rights reserved.