3

我收到了一个包含数十万个值的文件,它们在 .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 中找到确切的等价物。

任何帮助表示赞赏。

4

3 回答 3

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
于 2012-05-16T14:10:58.057 回答
0

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

%perl -F',' -a -n -e 'chomp, $count{$_}++ foreach (@F); END {print "$_: $count{$_}\n" foreach sort keys %count;}'
于 2012-05-16T14:11:04.877 回答
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)
于 2012-05-16T14:22:41.370 回答