【发布时间】:2016-04-06 12:46:16
【问题描述】:
# Generate counts table
library(plyr)
example <- data.frame(count(diamonds,c('color', 'cut')))
example[1:3,]
# Excerpt of table
color cut freq
1 D Fair 163
2 D Good 662
3 D Very Good 1513
您可以使用example[example$freq > 1000,] 轻松过滤频率 > 1000 的表。我想生成一个与此类似的表,除非所有值都小于一个值,例如1000 包含在一行中 (Other) 类似于当您有太多因素并调用 summary(example, maxsum=3) 时发生的情况。
color cut freq
D : 5 Fair : 7 Min. : 119
E : 5 Good : 7 1st Qu.: 592
(Other):25 (Other):21 Median :1204
Mean :1541
3rd Qu.:2334
Max. :4884
理想输出示例:
理想情况下我想转换这个example[example$color=='J',]:
color cut freq
J Fair 119
J Good 307
J Very Good 678
J Premium 808
J Ideal 896
并产生这个:
color cut freq
J Very Good 678
J Premium 808
J Ideal 896
J (Other) 426
奖励: 如果可以使用 ggplot 进行这种过滤来创建如下图,但是使用这种过滤,那也很棒。
ggplot(example, aes(x=color, y=freq)) + geom_bar(aes(fill=cut), stat = "identity")
【问题讨论】:
-
那么
Other的门槛是多少? -
@mtoto 我不介意这个数字,但我希望将小于阈值的“剪切”因子的频率分组(按颜色)。可能是频率
-
@docendodiscimus,谢谢你的链接,我去看看。
-
@amblina 是你要找的吗?
标签: r ggplot2 dataframe dplyr summary