如何在R中的向量上执行映射函数?

时间:2012-08-16 02:28:47

标签: r

我有一个像(1,100,2,30,20,...)

这样的矢量

我想做的是将这些值映射到另一个值。实际上我可以对这些值进行循环,但我想知道是否可以使map函数向量化。例如,我想将值映射到其存储桶,例如以下

1 ->  "< 10",
20 -> "10 to 50", 
60 -> "50 to 100", 

由于

2 个答案:

答案 0 :(得分:4)

这样的事情怎么样?

test <- c(1,24,2,30,20)

sapply(
    # bin the data up
    findInterval(test,seq(0,30,10)),
    # apply a particular function to the data element
    # dependent on which bin it was put into
    function(x) switch(x,sqrt(x),sin(x),cos(x),tan(x))
    )

[1]  1.0000000 -0.9899925  1.0000000  1.1578213 -0.9899925

答案 1 :(得分:1)

使用Purrr的maphttps://www.rdocumentation.org/packages/purrr/versions/0.1.0/topics/map

e.g。

xx=c(1,4,0,3,1)

f = function(s) return(c((10*s):(10*s+9)))
xx %>% map(f)