1
d <- function(...){
    x <- list(...) # THIS WILL BE A LIST STORING EVERYTHING:
    for(n in x){
      n*n+5       # Example of inbuilt function
    } %>%
      sum(.)
}

d(4,3)

基于在 R 中创建具有可变数量参数的函数,以及@Onyambu 的答案

35结果应该是
(4 * 4+5)+(3 * 3+5)=21+14=35。
但是,没有错误消息,R 根本没有显示任何结果。

4

2 回答 2

4

主要问题是您必须将 for 循环的输出存储在某处。该变量s获取循环的输出并在最后返回。为了获得您想要的输出(35),您可以执行类似的操作

d <- function(...){
  x <- list(...)
  s <- 0
  for(n in x)
    s <- s + n*n+5       
  s
}

d(4,3)
# [1] 35
于 2020-06-25T08:48:09.793 回答
4

您的函数可以矢量化,因此您不需要for循环:

d <- function(...){
   x <- c(...) 
   sum(x * x + 5)
}
d(4, 3)
#[1] 35
于 2020-06-25T08:49:36.257 回答