-3

我想知道是否有一个底层的编程逻辑来解释为什么一些基本的 R 函数对输入到它们的原始数据与向量的行为不同。

例如,如果我这样做

mean(1,2,3)

我没有得到正确的答案,也没有得到错误

但如果我这样做

sum(1,2,3)

我确实得到了正确的答案,即使我认为正确的语法是sum(c(1,2,3))

如果我这样做

sd(1,2,3)

我收到一个错误Error in sd(1, 2, 3) : unused argument (3)

我对这些不同行为的底层编程逻辑(如果有的话)很感兴趣。(我敢肯定,如果我扎根于源代码,我可以确切地弄清楚为什么它们的行为会有所不同,但我想知道代码可能以这种方式编写是否有原因)。

实际上,我正在教授一个基本的 R 课程,并想向我的学生解释为什么事情会这样运作;他们有点厌倦我说“这就是 R 的工作原理,忍受它;总是把东西放在向量中,让生活变得轻松。”

编辑:我将一些部分加粗以增加重点。 我的问题主要是关于软件设计,而不是这些特定功能如何运行或如何确定它们的确切运行。也就是说,不是“这些函数接受什么参数”,而是“为什么 R 中的简单数学函数(对生物学家而言)看起来设计不同”。

4

1 回答 1

2

meanis采用的第二个参数trim不是 的列出参数sum。的第一个参数sum\dots,因此,我相信该函数将尝试计算作为未命名参数输入的所有值的总和。

mean并且sum是通用函数,因此它们的部署方式取决于对象的类。

于 2016-09-20T14:49:51.343 回答