返回计数,唯一项目列表

时间:2012-05-16 13:59:11

标签: excel r

我收到了一个包含数十万个值的文件,在.CSV文件中格式不一致。结构可能类似于:

A,B,C,d
E,F
G,H,I,J,K,L,M,N,O
P,Q,R,S

等等。

我需要做的就是a)列出唯一值,b)计算相同的实例。很高兴在R,Excel或任何其他推荐的工具中执行此操作。

通常,我会使用Google Docs'= UNIQUE和= COUNT函数之类的东西,但电子表格太大而无法加载。我也没有在Excel中找到确切的等价物,奇怪的是。

任何帮助表示感谢。

3 个答案:

答案 0 :(得分:5)

如果我理解正确,这应该有效(在R中):

# Emulate your file
cat('A,B,C,D\nB,D\nA,A,F,Q,F\n', file='foo.csv')

x <- scan('foo.csv', what='', sep=',')
table(x)
#x
#A B C D F Q 
#3 2 1 2 2 1

答案 1 :(得分:0)

既然你说过“任何其他工具”:

%perl -F',' -a -n -e 'chomp, $count{$_}++ foreach (@F); END {print "$_: $count{$_}\n" foreach sort keys %count;}'

答案 2 :(得分:0)

我假设您知道如何将数据导入R?像read.csv这样的东西应该有效...... 无需进入应用类型函数,您可以执行一个简单的循环来搜索唯一值的计数(例如字母):

set.seed(1)

OBJ <- LETTERS[round(runif(1000, min=1, max=26))]
VALS <- unique(OBJ)
VALS
COUNTS <- rep(0*length(VALS))
for(i in seq(VALS)){
    COUNTS[i] <- length(which(OBJ==VALS[i]))
}

data.frame(VALS, COUNTS)