R 中的条件摘要:MaxSum
Conditional Summary in R: MaxSum
我有一个作者的数据框,数据集比 R 中的示例大得多,我希望得到更好的描述。我知道(有点)如何获得 maxsum
但 我怎样才能获得唯一作者的最大摘要,例如前 2 个最常见的作者? 然后我如何才能确定新的 maxsum
? 我将如何获得新的 maxsum
为 3 而不是输出的实际摘要有吗?
我基本上是在寻找有条件的方法来总结我的数据。有人可以在这个部门帮助我吗?
dat <- data.frame(author=c("a", "b", "c", "d", "a", "b", "c", "d", "e", "a", "a", "a","a", "a", "c","c","c","c"),Post=c("one", "one", "one", "one", "one", "one", "one", "one", "one", "one","one", "one","one", "one","one", "one","one", "one"))
authors <-dat[,1]
author_vec <- (authors)
length(unique(author_vec)) #5
ex_s <- summary(as.factor(neg.author_vec),maxsum=5)
不清楚在排除前 2 名后您期望有多少。这假设您想要接下来的三个频率(因为您说您了解 maxsum 的行为方式)。如果你想要接下来的五个,那么将两个添加到你当前的 maxsum::
ex_s <- sort(summary(author_vec,maxsum=5), decreasing=TRUE)[-(1:2)]
ex_s
#------
b d e
2 2 1
这是使用 plyr
库的方法:
require(plyr)
temp <- ddply(dat, ~author, summarise, sum=length(author))
temp <- temp[order(-temp$sum), ][3:nrow(temp), ]
> temp
author sum
2 b 2
4 d 2
5 e 1
作者 a
和 c
已被删除,因为他们是数据集中出现频率最高的两位作者。
我有一个作者的数据框,数据集比 R 中的示例大得多,我希望得到更好的描述。我知道(有点)如何获得 maxsum
但 我怎样才能获得唯一作者的最大摘要,例如前 2 个最常见的作者? 然后我如何才能确定新的 maxsum
? 我将如何获得新的 maxsum
为 3 而不是输出的实际摘要有吗?
我基本上是在寻找有条件的方法来总结我的数据。有人可以在这个部门帮助我吗?
dat <- data.frame(author=c("a", "b", "c", "d", "a", "b", "c", "d", "e", "a", "a", "a","a", "a", "c","c","c","c"),Post=c("one", "one", "one", "one", "one", "one", "one", "one", "one", "one","one", "one","one", "one","one", "one","one", "one"))
authors <-dat[,1]
author_vec <- (authors)
length(unique(author_vec)) #5
ex_s <- summary(as.factor(neg.author_vec),maxsum=5)
不清楚在排除前 2 名后您期望有多少。这假设您想要接下来的三个频率(因为您说您了解 maxsum 的行为方式)。如果你想要接下来的五个,那么将两个添加到你当前的 maxsum::
ex_s <- sort(summary(author_vec,maxsum=5), decreasing=TRUE)[-(1:2)]
ex_s
#------
b d e
2 2 1
这是使用 plyr
库的方法:
require(plyr)
temp <- ddply(dat, ~author, summarise, sum=length(author))
temp <- temp[order(-temp$sum), ][3:nrow(temp), ]
> temp
author sum
2 b 2
4 d 2
5 e 1
作者 a
和 c
已被删除,因为他们是数据集中出现频率最高的两位作者。