cherishlife123 发表于 2014-11-13 15:43 
不得不说,你是大神!只是有R的方法吗?我要处理的不仅仅是这一个表。。。
我不知道你要处理多少张表格,如果仅处理格式类似的表格,可以用以下方法——应你的要求,改用R实现
(1)将“2012-Export.xls”文件先另存为逗号分隔的CSV文件格式。
(R可以直接读取EXCEL文件,但我没尝试过。还是转换为CSV这种方便的格式吧)
(2)启动R,运行以下R脚本(假设“2012-Export.csv”保存在C盘):
- a = read.csv(file = "c:/2012-Export.csv", header = FALSE)
- notNull = apply(a, 1, function(x) sum(x != ""))
- b = subset(a, notNull == max(notNull))
- d = t(apply(b, 1, function(x) sapply(x, function(y) {
-
- ySep = substring(y, 1:nchar(y), 1:nchar(y))
- yChar = paste(ySep[ySep != " "], collapse = "")
- return(yChar)
-
- })))
- e = as.matrix(d[2:nrow(d), 2:ncol(d)])
- e = replace(e, e == ".." | e == "_", NA)
- mode(e) = "numeric"
- colnames(e) = as.vector(d[1, 2:ncol(d)])
- rownames(e) = as.vector(d[2:nrow(d), 1])
- e = e[, colnames(e) %in% rownames(e)]
- e = e[rownames(e) %in% colnames(e), ]
复制代码
矩阵e就是你需要的东西(它不是数据框了,它是数值型矩阵),e的尺寸如下:
> dim(e)
[1] 222 222
行与列的数目相同。