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的数值向量? 非常感谢你!
答案 0 :(得分:10)
在R中没有单个值。就R而言,标量是长度为1的向量,你无能为力。但是,您可以使用长度为1的向量,就好像它是R中的标量一样,所以我看不出问题是什么?
请注意,由于缺少标量和标量特异性,因此R中存在一些效率低下的问题。 - 优化运营。这些已在类似于R的新语言的背景下进行了讨论,但经过修改以解决其中的一些弱点,包括缺乏真正的标量。
Ross Ihaka在text of a paper given as JSM2010(PDF)中讨论了标量问题。当时的一些博客评论员也报道了罗斯的想法: