应用数据框中的函数列列表

时间:2014-03-20 13:59:36

标签: r apply

我有2个变量,aba可能非常大。 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,但文档似乎说它只能有一个功能。我可以使用一个循环,但是“矢量化”方式会很好。

1 个答案:

答案 0 :(得分:3)

这是一种方法:

results <- mapply(function(i,j) b[[i]](a[[j]]), i=1:length(b), j=1:length(a)) 

它给你:

> results
     [,1] [,2]
[1,]    1    5
[2,]    2    6
[3,]    3    7