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个文件。
答案 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)
}