R:MaxSum

时间:2015-12-01 05:28:21

标签: r vector dataframe summary

我在一个比R中的例子更大的数据集中有一个作者的数据框,我希望得到更好的描述性。我知道(有点)如何获得maxsum我怎样才能得到唯一作者的最大摘要,例如前2位最常见的作者? 我将如何?然后能够确定新的maxsum 如何获得新maxsum将是3而不是其输出的实际摘要? < / p>

我基本上在寻找总结我的数据的条件方式。有谁可以帮助我在这个部门?

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 个答案:

答案 0 :(得分: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

作者ac已被删除,因为他们是数据集中最常出现的两位作者。

答案 1 :(得分:0)

在排除前2之后,你不清楚你有多少人。这假设你想要接下来的三个频率(因为你说你明白了maxsum是如何表现的)。如果您想要接下来的五个,那么将两个加到当前的maxsum ::

ex_s <- sort(summary(author_vec,maxsum=5), decreasing=TRUE)[-(1:2)]
ex_s
#------
b d e 
2 2 1