我已经能够在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;在文件名中惹恼了我,有谁知道如何从名称中删除它? 感谢
答案 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=",")