【问题标题】:mean/sd as a value, not a vectormean/sd 作为一个值,而不是一个向量
【发布时间】:2013-03-18 09:51:54
【问题描述】:

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"

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

【问题讨论】:

    标签: r vector mean


    【解决方案1】:

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

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

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

    【讨论】:

    • @geektrader 不,至少我不是这么想的,这是 R 的两位原始作者之一作为研究项目所做的事情。我不认为这种语言和 Julia 一样远,而且从那以后我就再也没有听说过关于新语言的任何消息。
    • @geektrader 我现在已经找到了我正在做的事情并添加了指向答案的链接。享受吧。
    • 非常感谢您解决这个问题!我认为在尝试制作多个均值的数值向量时会出现问题,但效果很好。
    猜你喜欢
    • 2012-10-24
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 2011-12-07
    • 1970-01-01
    • 2013-04-26
    相关资源
    最近更新 更多