对于向量不同元素具有不同任务的循环

卫生部

我有以下向量:

set.seed(1); v1 = rnorm(100, 40, 10)

fun1 <- function(x){
x = x - 1
return(x)
}

fun2 <- function(x){
x = x * 10
return(x)
}

fun3 <- function(x){
x = x / 5
return(x)
}

我想为向量的长度设置一个循环,但对元素应用不同的功能[i]

fun1 for v1[1:20]&v1[41:60]
fun2 for v1[21:40]
fun3 for v1[61:100]

然后返回一个向量。

原来,我真的不知道如何优雅地做。

zx8754

使用mapply

unlist(mapply(function(myFun, x) myFun(x),
              myFun = list(fun1, fun2, fun1, fun3),
              x = list(v1[1:20], v1[21:40], v1[41:60], v1[61:100])))

如果您可以使用对某些子集使用某些函数的逻辑来更新我们,那么我们可以使其自动化程度更高,而不必为myFun输入值x

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章