我有一个名为 WOE 的函数,它返回一个包含 1 行和 7 列的数据名:
WOE(inData, splitCol, range, tgtCol, adjfac)
其中 inData 是数据框,splitCol、tgtCol 和 adjfac 是数字,范围可以是单个数字或 2x1 矩阵,例如 range = 10 或 range = c(10, 20)
现在我想写一个函数,当范围是n行矩阵时,该函数将逐行执行WOE并返回一个具有n行7列的数据框。现在我正在使用带有 cbind 的 for 循环:
df <- rbind(df, WOE(inData, splitCol, range[i,], tgtCol, adjfac))
for (i in 2:nrow(range)) {
df <- rbind(df, WOE(inData, splitCol, range[i,], tgtCol, adjfac))
}
但我不喜欢 for 循环……我想让它更简单。所以我也尝试过像这样使用mapply:
mapply(t(WOR, list(inData), list(splitCol), split(range, nrow(range)), list(tgtCol), list(adjfac))
但是上面的行并没有返回我想要的数据框,它返回了很多列表的数据框,这对我来说很难做进一步的计算。
有没有人建议我将我的 for 循环聚合成更少的行?谢谢!