我有一个像 (1,100,2,30,20,...) 这样的向量
我想做的是将这些值映射到另一个值。实际上我可以对这些值做一个循环,但我想知道我是否可以使 map 函数矢量化。例如,我想将值映射到它的存储桶,如下所示
1 -> "< 10",
20 -> "10 to 50",
60 -> "50 to 100",
谢谢
我有一个像 (1,100,2,30,20,...) 这样的向量
我想做的是将这些值映射到另一个值。实际上我可以对这些值做一个循环,但我想知道我是否可以使 map 函数矢量化。例如,我想将值映射到它的存储桶,如下所示
1 -> "< 10",
20 -> "10 to 50",
60 -> "50 to 100",
谢谢
这样的事情呢?
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
使用 Purrr map
( https://www.rdocumentation.org/packages/purrr/versions/0.1.0/topics/map )
例如
xx=c(1,4,0,3,1)
f = function(s) return(c((10*s):(10*s+9)))
xx %>% map(f)