如何在r中导出多个csv文件?

时间:2017-05-24 05:32:48

标签: r csv export-to-csv

8个csv文件中的每一个都有219列。我想导出219个csv文件,它结合了每个8个文件的每个列。

如何将多个csv文件导出为不同的名称? 这是我导入csv文件的代码。

df1<-read.csv("RSI9D.csv", header=TRUE)
df2<-read.csv("RSI30D.csv", header=TRUE)
df3<-read.csv("MKT_CAP.csv", header=TRUE)
df4<-read.csv("VOLUME.csv", header=TRUE)
df5<-read.csv("INST_HOLD.csv", header=TRUE)
df6<-read.csv("MOVAVG30.csv", header=TRUE)
df7<-read.csv("MOVAVG10.csv", header=TRUE)
df8<-read.csv("MOVAVG5.csv", header=TRUE)

正如我上面所说,我想导出一个组合每个文件中每列的文件。由于有219列,因此将生成总共219个文件。

3 个答案:

答案 0 :(得分:1)

您可以尝试使用SQL Server,将每个文件导入到表中,然后使用UNION之类的命令合并它们,然后简单地取出并导出。(假设所有表header / csv文件具有您期望的相同值)

答案 1 :(得分:1)

dat <- do.call(rbind, lapply(1:8, function(x)get(paste0("df", x))))

for(i in 1:ncol(dat)) write.csv(dat[,i], paste0("file_",i, ".csv"), row.names=F)

更新

df_list <- lapply(1:8, function(x) get(paste0("df", x)))

bindFn <- function(i, df_list){
  sapply(df_list, '[[', i)
}

for(i in names(df1)) write.csv(bindFn(i, df_list), paste0("file_",i, ".csv"), row.names=F)

答案 2 :(得分:0)

如果每个csv具有相同的列名,您可以使用“rbind”将8 csv一起构建,然后将每个列导出为单个csv文件。

inputfiles = c("RSI9D.csv","RSI30D.csv","MKT_CAP.csv","VOLUME.csv","INST_HOLD.csv","MOVAVG30.csv","MOVAVG10.csv","MOVAVG5.csv")
new_data=data.frame()


for(inputfile in inputfiles){
  data = read.csv(inputfile,header = FALSE)
  new_data<-rbind(new_data,data)
}

df8<-read.csv("MOVAVG5.csv", header=TRUE)
colnames(new_data) = colnames(df8)
attach(new_data)

for(i in 1:length(new_data)){
  outputfile = paste(colnames(new_data)[i],".csv",sep = "")
  print(paste(outputfile," is exporting ----"))
  write.csv(new_data[,i],outputfile)
}