【问题标题】:How to calculate the mean/sd of a vector without using the in-built R function?如何在不使用内置 R 函数的情况下计算向量的均值/标准差?
【发布时间】:2021-06-12 05:45:14
【问题描述】:

这一定是一个非常简单的解决方法,但我只是在努力弄清楚。我正在尝试编写一个函数,该函数将采用一个数字向量并计算其均值和另一个函数来计算 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 变量。如果我只是正常定义它,它就可以正常工作。

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

谢谢。

【问题讨论】:

  • 如果你在 R 中的控制台运行一个函数,它会自动打印返回值,所以你可能不需要打印。

标签: r function standards mean


【解决方案1】:

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

... - 数字或复数或逻辑向量。

所以,unlist list 将其转换为 vector

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-27
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 2023-01-09
    相关资源
    最近更新 更多