我試圖將函數應用於數據框的每一行。該函數使用chars和nums的組合作爲參數。沿着data.frame的行應用char和num參數的函數
這不是一個聚合練習,而是基於一系列使用char和num變量的條件定義現有data.frame中的新字段。所有變量都在data.frame中。
我知道apply
函數將數據幀行變成一個向量,在這種情況下是一個char向量:我想避免在函數中重新投射數據幀變量。
有關於如何使用apply
多個崗位和plyr
包能碰到data.frame行的功能,但我 - 從新手standpoint-的例子不按行的基礎上連續混合字符和num參數。謝謝。
condsIdx <- function(IDa,IDb,clss){
if (clss == 'a'){
y = IDa
} else if (clss == 'b' && IDb > 14) {
y = IDb
} else {
y = -1
}
y
}
df <- data.frame(IDa=c(1,2,3,4,5,6),
IDb=c(11,12,13,14,15,16),
clss=c('a','a','a','b','b','c'))
df$res <- -1
for (i in 1:nrow(df)){
df$res[i] <- condsIdx(df$IDa[i],df$IDb[i],df$clss[i])
}
我覺得'mdply(df,condsIdx)'也許是'plyr'最合適的實現方式 – mnel 2013-03-11 22:11:01