我有以下脚本:
Files <- list.files(datapath, pattern = ".txt")
# convert all .txt files in the given folder
for (i in 1:length(Files)){
dataname <- Files[i]
filename <- paste(datapath, dataname, sep="")
read_eprime(filename) %>% FrameList() %>% to_data_frame() %>% select(Cue:ISIslide.RT, GetReady.OnsetTime, ScanWait.OffsetTime) %>% slice (-1) %>%
fill(GetReady.OnsetTime, .direction = "up") %>% fill(ScanWait.OffsetTime, .direction = "up") %>% slice (-79) -> edf
write.csv(edf, file = paste0(datapath, dataname, "_P.csv"), na = "", row.names = FALSE)
#write.csv(edf, file=paste0(datapath, "tsv_", dataname), quote=FALSE, sep="\t", na = "")
}
如何调整它,以免输出文件的名称中间不带有“ .txt”?
答案 0 :(得分:2)
检出file_path_sans_ext
以获取文件名。这来自内置的 tools 包,将仅返回不带扩展名的文件名。
tools::file_path_sans_ext("myFile.txt")
## [1] "myFile"
您也可以使用它来代替将文件路径粘贴到文件名。
tools::file_path_sans_ext("Downloads/Stuff/myFile.txt")
## [1] "Downloads/Stuff/myFile"
答案 1 :(得分:0)
您可以考虑使用gsub
将数据名称中的.txt
替换为""
,
gsub("\\.txt","","file.txt")
#[1] "file"
dataname <- "myFile.txt"
gsub("\\.txt","",dataname)
#[1] "myFile"
dataname <- "Downloads/Stuff/myFile.txt"
gsub("\\.txt","",dataname)
#[1] "Downloads/Stuff/myFile"
gsub
的优点在于它还可以更正多次出现的“ .txt”。例如:
dataname <- "Downloads/Stuff/my.txtFile.txt"
gsub("\\.txt","",dataname)
#[1] "Downloads/Stuff/myFile"