others - 在 R 中,合并多个csv

& 27-12-2006它有 1003行。

1 ) 当我使用="符号"的合并函数时,所有的= F,我惊讶地看到结果为 1011行。 我也分析了数据,发现有 5不同符号 27-12-2006 & 3 26-12-2006不同的符号。

我大约有1535个文件,这些文件的数据从2006年12月到2013年4月。 但是无法合并12个以上的文件,抛出了12 MB的错误向量(vector size of 12 MB cannot be allowed.)。 它还显示警告消息,指出已用完1535 MB的内存。

是否有更好的合并csv的方法?


a <- read.csv("C://Users/home/desktop/061226.csv", stringsAsFactors = F, header = T)
b <- read.csv("C://Users/home/desktop/061227.csv", stringsAsFactors = F, header = T)
a_date <- a[2,1]
b_date <- b[2,1]
a <- cbind(a[,2],a[,6])
b <- cbind(b[,2], b[,6])
colnames(a) <- c("SYMBOL", a_date)
colnames(b) <- c("SYMBOL", b_date)
c <- merge(a,b,by ="SYMBOL", all = F)

NSEmerg <- function(x,y) {
 y_date <- y[2,1]
 y <- cbind(y[,2], y[,6])
 colnames(y) <- c("SYMBOL", y_date)
 c <- merge(c, y, by ="SYMBOL", all = F)
 }

filenames = list.files(path ="C:/Users/home/Documents/Rest data", pattern ="*csv")

for (i in 1:length(filenames)){
 y <- read.csv(filenames[i], header = T, stringsAsFactors = F)
 c <- NSEmerg(c,y)
 }

write.csv(c, file ="NSE.csv")

时间:

首先列出map中的所有. csv 文件:


listfiles <- list.files(path="C:/Users/home/desktop", pattern='.csv$', full.names=TRUE)

接下来使用 do.call 读取不同的csv文件,并将它们用 rbind 合并。


df <- do.call(rbind, lapply(listfiles, read.csv))

你最好使用perl的一个接口:


perl -pe1 file1 file2 file3.. .> newfile

然后你就可以把你需要的列剪掉


cut -f1,2 -d"," newfile> result

...