我想知道这是否可能在R中:
我有2列。 Column A (primaryhistory2.DEPT)
包含大量分类数据,column B (primaryhistry2.ACT.ENROLL)
包含数字和NAs
。
我想获得A列中每个类别的B列摘要。
对于A列中的“NUT”,我希望看到min
,max
,mean
,median
,NAs
等。我会喜欢看每个类别的这个。就像使用summary()
命令一样。
不确定这是否可行..提前谢谢大家!
答案 0 :(得分:4)
很可能使用dplyr
库:
library(dplyr)
most.of.the.answer = df %>%
group_by(primaryhistory2.DEPT) %>%
summarise(min = min(primaryhistry2.ACT.ENROLL, na.rm = TRUE), max = max(primaryhistry2.ACT.ENROLL, na.rm = TRUE), mean = mean(primaryhistry2.ACT.ENROLL, na.rm = TRUE), median = median(primaryhistry2.ACT.ENROLL, na.rm = TRUE))
(假设您的数据框名为df
)
要计算NA&#39,请尝试dplyr
filter
功能:
count.NAs = df %>% filter(is.na(primaryhistry2.ACT.ENROLL)) %>%
group_by(primaryhistory2.DEPT) %>%
summarise(count.NA = n())
我会留给你合并这两个数据帧。
答案 1 :(得分:3)
使用基数R你可以这样做:
temp <- aggregate(primaryhistory2..ACT.ENROLL ~ primaryhistory2.DEPT,df,function(x){c(mean = mean(x,na.rm=T),median = median(x,na.rm=T),min = min(x,na.rm=T),max = max(x,na.rm=T),nas=sum(is.na(x)))})
res <- cbind(temp[1],temp[[2]])
如果您想使用summary
:
summary1 <- sapply(unique(df$primaryhistory2.DEPT),function(x) summary(subset(df,primaryhistory2.DEPT == x)$primaryhistory2..ACT.ENROLL))
colnames(summary1) <- unique(df$primaryhistory2.DEPT)