【问题标题】:Create a table for N, Min/Max, SD, Mean, and Median in R在 R 中为 N、Min/Max、SD、Mean 和 Median 创建一个表
【发布时间】:2013-04-26 20:58:59
【问题描述】:

我是 R 的新手,所以请耐心等待这个基本问题。 我有一个使用 data.table 包创建的数据集 DATA。我在 0 和 1 之间创建了 200 个随机数,然后做了 10000 次,最后为每次迭代创建了一个带有描述性统计的数据表。我的代码如下所示:

rndm<-runif(200, min=0, max=1)
reps <- data.table(x=runif(200*10000),iter=rep(1:200,each=10000))
DATA <- reps[,list(mean=mean(rndm),median=median(rndm),sd=sd(rndm),min=min(rndm),
max=max(rndm)),by=iter]

数据看起来像这样:

    Mean    Median     SD    Min    Max
1   0.521    0.499   0.287  0.010  0.998
2   0.511    0.502   0.290  0.009  0.996
.    ...     ... 

等等

我想要做的是创建一个表格,找到 N、平均值、中位数、标准差、最小值和最大值累积样本平均值(不是像上面的每一列)。我需要输出看起来像这样:

   N     Mean   Median    SD    Min    Max
 10000  .502     .499    .280  .002   .999

我怎样才能做到这一点?

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/16323053/…
  • 哈!我想这个人在我班。
  • 我仍然不明白如何获取上述格式的表格,这是我真正想要完成的。有什么建议吗?
  • 我认为要让它看起来完全一样,您可能必须手动完成:c(N=length(summary$mean),Mean=mean(summary$mean))。通过N=...,您将把标签放在上面。您要查找的所有六个内容都是标准 R 函数、?sd 等。
  • reps[, as.list(c(N=.N, summary(x)))] 是你要找的,我想。

标签: r data.table


【解决方案1】:

目前,您正在为每个不同的iter 项目分别计算列表中的函数。但是,如果您想要聚合统计信息,只需删除 by 子句,您的函数将在整个数据集上运行一次。然后添加一个项目给N——利用data.table提供的.N变量。

DATA <- reps[, list(N=.N, mean=mean(rndm), median=median(rndm), 
                    sd=sd(rndm), min=min(rndm), max=max(rndm))]

【讨论】:

    【解决方案2】:

    你也可以定义一个函数。这种方法允许您为不同的变量制作同一张表。

    summaryfun <- function(x)list(N=length(x),Mean=mean(x),Median=median(x),SD=sd(x),Min=min(x),Max=max(x))
    DATA[,summaryfun(mean)]
    

    【讨论】:

      猜你喜欢
      • 2016-09-12
      • 2021-12-24
      • 2013-04-24
      • 2017-03-15
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 2018-05-07
      • 2015-09-21
      相关资源
      最近更新 更多