2013-03-28 291 views
-1

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

这似乎很简单:只需取出由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的数值向量? 非常感谢!

回答

10

在R中没有这样的单一值。至于R而言,标量是长度为1的向量,对此你不能做任何事情。但是,您可以使用长度为1的矢量,就好像它是R中的标量一样,所以我没有看到问题是什么?

请注意,由于缺少标量和标量特定的优化操作,R中存在一些低效率。这些都是在类似于R的新语言的背景下讨论过的,但是为了解决其中的一些弱点,包括缺乏真正的标量而进行了修改。

Ross Ihaka讨论了text of a paper given as JSM2010(PDF)中的标量问题。当时一些博客评论家也包括罗斯的想法:

+0

我就奇了新的语言是什么。 'Julia'? – 2013-03-28 03:30:02

+0

@geektrader不,至少那不是我想到的,这是R的两位原创作者之一作为研究项目所做的事情。我不认为这种语言跟朱莉娅一样,而且自那时起我还没有听到任何关于新语言的消息。 – 2013-03-28 03:32:14

+0

@geektrader我现在找到了我正在做的事情,并添加了答案的链接。请享用。 – 2013-03-28 03:44:55

相关问题