2010-10-27 62 views
2

如何在R中为特定列实现等效awk '{print $1}' /tmp/data | sort | uniq -c按元素列数

示例: 猫/ TMP /数据

alama 
alama 
alama 
bbbb 
bbbb 
ccc 
alama 
bbbb 
bbbb 

AWK '{打印$ 1}'/ TMP /数据|排序| uniq的-c

1 
    4 alama 
    4 bbbb 
    1 ccc 

在列中的每个项目的即计数。


基于@约书亚的建议和我的特殊需求。

s<-data.frame(table(spam[,1])) 
p<-s[s$Freq>=3,] 
p[order(p$Freq,decreasing=TRUE),] 

回答

5
> set.seed(21) 
> Data <- data.frame(V1=sample(letters[1:5],20,TRUE)) 
> length(unique(Data[,1])) 
[1] 5 

基于更新后的问题 - 假设数据是x

> table(x) 
x 
alama bbbb ccc 
    4  4  1 
> data.frame(table(x)) 
     x Freq 
1 alama 4 
2 bbbb 4 
3 ccc 1 
+3

......或者如果它是一个因素,使用'nlevels'。 – 2010-10-27 14:57:55

+0

@Richie但如果因素有缺失的水平,那么将有所不同。 – Marek 2010-10-27 15:40:13

+0

@Marek:'nlevels(x [,drop = TRUE])'在这种情况下。 – 2010-10-27 17:08:12