时间:2016-08-18 16:16:53

标签: r string csv export-to-csv

我已经能够在R中创建一个代码,使用

批量生成我的所有.txt文件到.csv文件
setwd("~/Desktop/test/")
filelist = list.files(pattern = ".txt")
for (i in 1:length(filelist)){
    input<-filelist[i]
    output<-paste0(input, ".csv")
    print(paste("Processing the file:", input))
    data = read.delim(input, header = TRUE)   
    setwd("~/Desktop/test/done/")
    write.table(data, file=output, sep=",", col.names=TRUE, row.names=FALSE)
    setwd("~/Desktop/test/")
}

效果很好,但文件仍然在名称中保留.txt扩展名 示例origninal file =&#34; sample1.txt&#34;然后新文件说&#34; sample1.txt.csv&#34;该文件作为.csv工作,但额外的&#34; .txt&#34;在文件名中惹恼了我,有谁知道如何从名称中删除它? 感谢

2 个答案:

答案 0 :(得分:5)

您可以删除不需要的.txt

output <- paste0(gsub("\\.txt$", "", input), ".csv")

反斜杠将点标记为文字点(如果未标记,则在正则表达式中具有其他含义)。反斜杠必须加倍,因为R试图逃避单个反斜杠。美元符号表示字符串的结尾,因此只删除文件名末尾的“.txt”。

答案 1 :(得分:1)

<a href="#" onclick="openNav()">Open</a>

<a href="#" onclick="closeNav()">Close</a>

替代帮助:

write.table(filelist,file=paste0("~/Desktop/test/done/",sub(".txt","",filelist[i]),".csv"),row.names=F,colnames=T,quote=F,sep=",")