繁体   English   中英

如何使用R对数据进行分组和统计

[英]How to group data and do statistics using R

我想对我拥有的数据集使用R进行一些统计。 数据在列表中,并使用识别码进行分组,此处在cat列中提供

cat         AS_Year AS_Day  As_Month    EVENT_TYPE  RESULT_TYPE REASON_TYPE OPERATOR_TYPE   DATE_EVENT  Day_Total
9002F100AS2 2009    14       2          9002        F           100         AS2             14-Feb-09   2
9002F123AS2 2009    14       2          9002        F           123         AS2             14-Feb-09   1
9008F0AS2   2009    14       2          9008        F           0           AS2             14-Feb-09   1

每天有成千上万的此类代码,我想对每种代码的数量进行一些统计。

我研究了事物并尝试与

ddply(dtest,~group,summarise,mean=mean(Day_Total),sd=sd(Day_Total))

这给了我NA的平均值和一个与我使用excel得到的不相关的sd。 我也已经在更简单,更小的测试数据集上进行了测试,而平均值和标准偏差似乎并不正确。 是否有人对如何使用此功能有任何建议,或者我在某处缺少任何东西

试试非常有效的data.table

library(data.table) 
setDT(dtest)[, list(mean = mean(Day_Total, na.rm = T), 
                    sd=sd(Day_Total, na.rm = T)), by = cat]

或者,如果您喜欢坚持使用plyr系列,请尝试使用更新且效率更高的dplyr软件包

注意 :首先通过执行detach("package:plyr", unload = TRUE)分离plyr

library(dplyr)
dtest %>% 
  group_by(cat) %>%
  summarise(mean = mean(Day_Total, na.rm = T), sd=sd(Day_Total, na.rm = T))

我以团体的形式假设你的意思是猫在你的衬里里。 难道您的Day_Total或cat不是正确的类型? Day_Total列中是否有一些不适用的值?

是什么赋予了?

ddply(dtest,.(as.factor(cat)), summarise, mean=mean(Day_Total,na.rm=true),sd=sd(Day_Total,na.rm=true))

暂无
暂无

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

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