2013-12-11 50 views
0

问题:什么是通过ID向量循环的最佳方式,以便将一个ID作为参数传递给函数,然后运行下一个函数ID用于再次运行该函数,依此类推,直到函数运行了30次并使用向量中的30个ID?将个别参数从向量传递到复杂函数

附加信息:我有一个复杂的功能,它从几个不同的来源检索数据,操作它,将其写入不同的表格,然后在完成时给我发电子邮件。它有几个硬编码的参数,以及每次我想运行时手动输入的ID参数。

我很抱歉,我不能给很多细节,但是这是我的设置

#Manually Entered Arguments 

ID<-3402 
Arg1<- "Jon_Doe" 
Arg2<- "[email protected]" 

#Run Function 
    RunFun <- function (ID, arg1, arg2) {...} 

的一个非常简化版本现在,我有30个非顺序ID(所有数字),其我从一个Excel列采用进口:

ID.Group<- scan() 

我知道,这是极其低效通过函数一次一个运行每个ID,但功能和技术限制的复杂性只允许一个是一次运行。

我刚刚开始使用R,所以我很抱歉,如果这些都没有意义。我花了最后5个小时试图解决这个问题,所以任何帮助将不胜感激。 谢谢!

+0

如果您提供了更多详细信息,人们可以更容易地为您提供帮助。看看这个:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – betabandido

+0

你似乎要求的标量VS向量化函数的描述... –

回答

0

Vectorize函数实际上是mapply的包装函数,经常在向量化不是函数体的自然结果时使用。如果您对ARG1和ARG2值写的功能是这样的:

RunFun <- function (ID, arg1="Jon_Doe", arg2="[email protected]") {...} 
V.RunFun <- Vectorize(Runfun) 
V.RunFun (IDvector) 

这往往与integrateouter需要,他们的论据返回等长的矢量输入使用。