我是一個C語言程序員,他被要求在R中做一些工作。我需要弄清楚如何調用一個函數多次傳入一個數據幀的「塊」。對於前兩列不同的所有行,我需要調用一次函數。將函數應用於數據幀的塊
這裏就是我的意思是:
Stratum<-c("FPN", "FPN", "FPN", "MPN", "MPN", "MPN")
Cal<-c("ynnn", "ynnn", "yynn", "ynnn", "ynnn", "yynn")
Band.1<-c(1,2,1,1,2,1)
Band.2<-c(2,3,2,2,3,2)
Regroup<-c("No","Yes","No","Yes","No","No")
decs.data<-data.frame(Stratum,Cal,Band.1,Band.2,Regroup,stringsAsFactors=FALSE)
Stratum Cal Band.1 Band.2 Regroup
FPN ynnn 1 2 No
FPN ynnn 2 3 Yes
FPN yynn 1 2 No
MPN ynnn 1 2 Yes
MPN ynnn 2 3 No
MPN yynn 1 2 No
對於上述數據我會調用該函數的四倍 - 一旦傳遞decs.data的所有行,其中階層=「FPN」和加州=「ynnn 「,然後Stratum =」FPN「和Cal =」yynn「等。
該函數不會在這些行上操作,它使用它們來確定從光盤加載哪個數據文件以及如何處理它。
我該如何在R中以這種方式調用函數?我確定'申請'必須參與,但我正在努力弄清楚如何。
更新: 我不需要所有行的data.frame作爲參數傳遞給函數,只是那些匹配(即行1 & 2第一個呼叫,3爲2,4 & 5第五和第六)。
該函數將根據階層&校準列(例如FPN.ynnn.rdata)加載數據文件,然後根據Band.1,Band.2和Regroup列決定如何處理它。
本質上,decs.data不是我想操作的數據,而是一個決定矩陣,它定義了哪些rdata文件需要重新組合。
如果您提供了有關您的功能的更多細節,找到合適的解決方案會更容易。我在下面提到'應該',這應該起作用。但是,如果不需要'data.frame'中的所有行作爲該函數的參數,則可以使用稍微簡單的解決方案。 – nograpes
謝謝,我添加了更多的信息,我希望能更好地解釋一些事情。 – Nelviticus
我認爲我的答案仍然正確,儘管您的更新。 – nograpes