如何在不使用内置 R 函数的情况下计算向量的 mean/sd?

How to calculate the mean/sd of a vector without using the in-built R function?

这一定是一个非常简单的修复,但我只是在努力弄清楚。我正在尝试编写一个函数,该函数将采用数字向量并计算其均值和另一个函数来计算 sd。这就是我现在拥有的:

calc_avg <- function(vec){
  print(sum(vec)/length(vec))
}

list_d <- list(5,5)
calc_avg(list_d)

显示的错误是这样的:Error in sum(vec) : invalid 'type' (list) of argument

在我看来,函数非常简单,但出于某种原因,R 的 sum 函数无法识别 vec 变量。如果我只是正常定义它,它就可以正常工作。

任何帮助将不胜感激,是的,我 100% 是 R 的菜鸟。

谢谢。

它是一个list,而sum需要一个vector。根据?sum

... - numeric or complex or logical vectors.

因此,unlistlist 转换为 vector

calc_avg(unlist(list_d))
#[1] 5