我收到了一个包含数十万个值的文件,在.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中找到确切的等价物,奇怪的是。
任何帮助表示感谢。
答案 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)