我正在尝试将函数应用于数据框的每一行。该函数使用字符和数字的组合作为参数。
这不是聚合练习,而是基于使用 char 和 num 变量的一系列条件在现有 data.frame 中定义新字段。所有变量都在 data.frame 中。
我知道该apply
函数将数据框行转换为向量,在本例中为 char 向量:我想避免在函数中重新转换数据框变量。
有几篇关于如何使用apply
以及plyr
跨 data.frame 行运行函数的包的帖子,但是 - 从我的新手的角度来看 - 这些示例不会逐行混合 char 和 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])
}