-4

我以这种方式使用 R 库中的函数(“myfunction”):

 myfunction(obj1, obj2, obj3, c("Name1", "Name2"))

其中“Name1”和“Name2”是两个基因名称。我不想检索关于这两个基因的信息,而是想检索许多其他基因的信息,这些基因存储在一个有 1000 列和 100 行的文件中(100 行是 100 个基因名称)。

换句话说,假设我的文件名为 fl1000。对于每一列,我想要以下代码:

myfunction(obj1, obj2, obj3, fl1000[,1])
myfunction(obj1, obj2, obj3, fl1000[,2])
myfunction(obj1, obj2, obj3, fl1000[,3])
....
myfunction(obj1, obj2, obj3, fl1000[,1000])

既然不可能手动完成,那么如何以更紧凑和快速的方式完成呢?

4

1 回答 1

1

您的函数有四个参数 - obj1、obj2、obj3 和一个似乎是两个名称的向量的未命名参数。目前尚不清楚前三个 obj 是什么——它们是向量、单个元素还是什么?

因此,第一个问题似乎是您可能以何种方式在数据矩形的单列上运行此类函数。要在该矩形上使用 apply ,您将需要一个函数,该函数将 100 个元素的单个向量作为其输入。Clearyl myfunction() 并不是现在这样的函数。但是,如果该向量可以作为例如 obj1 输入,并且您只需要提供其他内容为 obj2 和 obj3,则调整函数很简单,因此它可以工作。但是,除非我们对您在做什么有更多的了解,否则我们无法提供更多帮助。

编辑(问题编辑后)

这个问题对我来说仍然不太有意义,因为该函数看起来需要一个 Name1 和 Name2 的向量,而您现在想给它一行 100 个值(而不仅仅是 2 个)。

但抛开这一点,也许你想要:

apply(fl1000, 2, function(x){myfunction(obj1, obj2, obj3, x)})
于 2013-01-10T18:51:56.803 回答