如何将函数结果添加到列表

How to add function result to a list

我正在尝试将函数的结果添加到一个空列表中。 我已经看到很多关于它的问题,但我不知道如何在我的代码中实现它们

a1 <- runif(10, 0, 1)
a2 <- runif(15, 0, 1)
a3 <- runif(20, 0, 1)
a4 <- runif(25, 0, 1)
a5 <- runif(30, 0, 1)
a6 <- runif(35, 0, 1)
a7 <- runif(40, 0, 1)
a8 <- runif(45, 0, 1)
a9 <- runif(50, 0, 1)
a10 <- runif(55, 0, 1)
a11 <- runif(60, 0, 1)
a12 <- runif(65, 0, 1)

dane <- list()
Estymator_sredniej <- function(która_próba, liczebnosc) {
  res <- round((1/liczebnosc) * sum(która_próba), digits = 3)
  cat(paste(res),sep = "\n")
  new_element <- res
  dane[[length(dane) + 1]] <- new_element
}

lista <- list(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
o <- 10
for (i in lista){
  Estymator_sredniej(i, o)
  o <- o + 5
}

我正在尝试将“res”添加到名为“dane”的列表中,这是一个正常的数字,例如 0.385

每次我尝试 运行 代码时,列表最终都是空的。

为了调试,我打印了 res(有效)

我试过用这个

 new_element <- 5
 dane[[length(dane) + 1]] <- new_element

将 5 添加到我的列表中(有效)

那么为什么我不能将 res 添加到此列表? 老实说,我没有想法

我猜你的函数 Estymator_sredniej 中需要 <<-,例如

dane <- list()
Estymator_sredniej <- function(która_próba, liczebnosc) {
  res <- round((1 / liczebnosc) * sum(która_próba), digits = 3)
  dane[[length(dane) + 1]] <<- res
}

lista <- list(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
o <- 10
for (i in lista) {
  Estymator_sredniej(i, o)
  o <- o + 5
}

这样

> dane
[[1]]
[1] 0.502

[[2]]
[1] 0.482

[[3]]
[1] 0.544

[[4]]
[1] 0.498

[[5]]
[1] 0.532

[[6]]
[1] 0.473

[[7]]
[1] 0.517

[[8]]
[1] 0.499

[[9]]
[1] 0.472

[[10]]
[1] 0.462

[[11]]
[1] 0.508

[[12]]
[1] 0.484