在 R 中将 .txt 更改为 .csv
change .txt to .csv in R
我已经能够在 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 扩展名
原始文件示例 = "sample1.txt" 然后新文件显示 "sample1.txt.csv" 该文件作为 .csv 文件工作,但文件名中额外的“.txt”让我很烦,有人知道如何将其从名称中删除吗?
谢谢
您可以删除不需要的 .txt
:
output <- paste0(gsub("\.txt$", "", input), ".csv")
反斜杠将点标记为文字点(如果不标记,它在正则表达式中具有其他含义)。反斜杠必须加倍,因为 R 试图转义单个反斜杠。美元符号代表字符串的结尾,因此仅删除文件名末尾的“.txt”。
write.table(filelist,file=paste0("~/Desktop/test/done/",sub(".txt","",filelist[i]),".csv"),row.names=F,colnames=T,quote=F,sep=",")
替代帮助:
setwd("~/Users/Rio/Documents/Data/")
FILES <- list.files( pattern = ".txt")
for (i in 1:length(FILES)) {
FILE=read.table(file=FILES[i],header=T,sep="\t")
write.table(FILE,file=paste0("~Users/Rio/Documents/Data/",sub(".txt","",FILES[i]),".csv"),row.names=F,quote=F,sep=",")
}
我已经能够在 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 扩展名 原始文件示例 = "sample1.txt" 然后新文件显示 "sample1.txt.csv" 该文件作为 .csv 文件工作,但文件名中额外的“.txt”让我很烦,有人知道如何将其从名称中删除吗? 谢谢
您可以删除不需要的 .txt
:
output <- paste0(gsub("\.txt$", "", input), ".csv")
反斜杠将点标记为文字点(如果不标记,它在正则表达式中具有其他含义)。反斜杠必须加倍,因为 R 试图转义单个反斜杠。美元符号代表字符串的结尾,因此仅删除文件名末尾的“.txt”。
write.table(filelist,file=paste0("~/Desktop/test/done/",sub(".txt","",filelist[i]),".csv"),row.names=F,colnames=T,quote=F,sep=",")
替代帮助:
setwd("~/Users/Rio/Documents/Data/")
FILES <- list.files( pattern = ".txt")
for (i in 1:length(FILES)) {
FILE=read.table(file=FILES[i],header=T,sep="\t")
write.table(FILE,file=paste0("~Users/Rio/Documents/Data/",sub(".txt","",FILES[i]),".csv"),row.names=F,quote=F,sep=",")
}