-1

R 中的 mean 和 sd 函数返回长度为 1 的数值向量。
我想将均值和标准差计算为单个值,而不是向量。

这看起来很简单:只需取 mean/sd 返回的向量的第一个元素。(diffs[[i]] 是一个数值向量)

meanvec<-mean(diffs[[i]])
mean<-meanvec[1]

但是,这会导致另一个长度为 1 的向量!!

Browse[1]> meanvec
[1] 0.9940868
Browse[1]> mean
[1] 0.9940868
Browse[1]> class(meanvec)
[1] "numeric"
Browse[1]> class(mean)
[1] "numeric"

如何获得平均值和 sd 作为一个简单值,而不是长度为 1 的数字向量?非常感谢!

4

1 回答 1

10

R 中不存在单一值。就 R 而言,标量是长度为 1 的向量,对此您无能为力。但是,您可以使用长度为 1 的向量,就好像它是 R 中的标量一样,所以我看不出问题出在哪里?

请注意,由于缺少标量和特定于标量的 & 优化操作,R 中存在一些低效率。这些已经在类似于 R 的新语言的上下文中进行了讨论,但经过修改以解决它的一些弱点,包括缺乏真正的标量。

Ross Ihaka 在以 JSM2010 (PDF)形式给出的论文文本中讨论了标量问题。当时的一些博客评论员也谈到了罗斯的想法:

于 2013-03-28T03:26:18.557 回答