繁体   English   中英

为R中的N,Min / Max,SD,Mean和Median创建表

[英]Create a table for N, Min/Max, SD, Mean, and Median in R

我是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

我该怎么做?

您也可以定义一个函数。 这种方法允许您为不同的变量创建相同的表。

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)]

目前,您正在为iter每个项目分别计算列表中的函数。 但是,如果您想要汇总统计信息,只需删除by子句,您的函数将在整个数据集中运行一次。 然后添加一个项以使用data.table提供的.N变量来赋予N

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM