我正在处理一个复杂的项目,每次我都需要使用上一次运行函数的结果来运行函数.为了让我的观点更清楚,假设我有一个向量x和一个函数myfunc.然后,我需要使用向量x来运行myfunc.然后,我获取函数的输出,并将它们作为同一函数的参数再次插入.我需要自动重复几次.

例如,

x <- c(1,2,3)
myfunc <- function(x){
  res <- 2*x
  return(res)
}

然后,

x <- myfunc(x)
> x
[1] 2 4 6

x <- myfunc(x)
 > x
[1]  4  8 12

How can I do this automatically (repeat for, say, 5 times)? In the end, I need the result of the final run only. 例如, the result of the fifth run.

推荐答案

这样做的一个好方法是在函数本身中包含一个参数repeats.

myfunc <- function(x, repeats=1){
  res <- x
  for(i in 1:repeats) {
    res <- 2*res
  }
  return(res)
}

> myfunc(x, 5)
[1] 32 64 96

R相关问答推荐

如何将在HW上运行的R中的消息(错误、警告等)作为批处理任务输出

将年度数据插入月度数据

如何在R中对深度嵌套的tibbles中的非空连续行求和?

如何调整曲线图中的y轴标签?

矩阵的堆叠条形图,条形图上有数字作为标签

在R中,我如何使用滑动窗口计算位置,然后进行过滤?

派生程序包| ;无法检索';return()';的正文

如何从向量构造一系列双边公式

如何将宽格式的患者信息数据高效地转换为患者计数的时间序列?

每行不同列上的行求和

有没有办法更改ggplot2中第二个y轴的比例限制?

R:改进实现简单模型

从多行中 Select 最小值

创建两个变量组合的索引矩阵

真实世界坐标的逆st_变换

使用点图调整离散轴比例

如何将数据框压缩为更宽,同时将行输入保持为行输入,而不是R中的列名?

判断R中多个数据帧中的公共ID

使用离散标签自定义图例,用于具有连续但已入库的数据的热图

相同的代码(使用R';S dplyr、stringr和sf)在使用不同的包版本时会产生不同的结果