在矩阵的列上应用函数

时间:2013-01-10 18:05:44

标签: r

我正在以这种方式使用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])

由于不可能手动完成,如何以更紧凑和快速的方式完成这项工作?

最好,

1 个答案:

答案 0 :(得分: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)})