2013-12-11 49 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需要,他們的論據返回等長的矢量輸入使用。