【发布时间】:2014-03-20 13:59:35
【问题描述】:
我有 2 个变量,a 和 b。 a 可能非常大。 b 始终是一个函数向量,可以应用于数据框a 中的每一列。
a <- data.frame(col1=c(1, 2, 3), col2=c(4, 5, 6))
b <- c(as.double, function(x) {1+x})
所以我想要的结果是函数b[1] 应用于col1,b[2] 应用于col2,以此类推所有列。我觉得 lapply 应该在这里使用,但文档似乎说它只能有一个功能。我想我可以使用一个循环,但“矢量化”的方式会很好。
【问题讨论】:
-
为什么需要循环?
-
我猜
mapply可能有用。或许可以看到mapply(function(x, y) y(x), x = a, y = b)之类的内容 -
RScriv,我本身需要循环,我的意思是可以这样做(对于每一列,在 b 中获取相应的索引函数并应用) - 但正如我所说,我更喜欢矢量化方法