[英]Running a loop for editing multiple txt files in Rstudio
我想在 RStudio 中打開多個 .txt 文件,並創建了一個循環來使用for
函數打開這些文件。 我只想刪除每個文檔中的第一行,然后以相同的名稱再次保存 .txt 文件。 我已經能夠使用這個腳本一次打開一個 .txt 文件:
setwd("Document directory")
Test_data<-read.delim("File Name.txt")
colnames(Test_data)<-NULL
Test_data<-Test_data[-c(1),]
write.table(Test_data, file = "File Name 1.txt", sep = "\t",row.names = FALSE, col.names = FALSE)
而且我已經能夠用這個腳本創建循環:
library(tidyverse)
library(fs)
setwd("Document directory")
file_paths <-fs::dir_ls("Document directory")
file_paths
file_contents<- list()
#This creates a loop
for(i in seq_along(file_paths)){
file_contents[[i]]<-read.delim(
file = file_paths[[i]]
)
}
View(file_contents)
但我不確定如何將它們放在一起以創建一個循環來編輯我正在工作的文件夾中的每個文檔。
請問有人願意幫忙嗎?
假設您要編輯“文檔目錄”中的每個csv
文件,刪除第一行和列名。
library(tidyverse)
library(fs)
setwd("Document Directory")
files <- fs::dir_ls(type = "file", regex = "[.]csv$")
#This creates a loop
for(i in seq_along(files)) {
tmp_content <- read.delim(files[i])[-c(1),]
write.table(tmp_content, file = paste0("new_", files[i]), sep = "\t",row.names = FALSE, col.names = FALSE)
}
dir_ls
過濾文件的參數,尤其是.csv
文件。 您可以更改此行為,例如每個.txt
文件的regex = "[.]txt$"
過濾器。 如果您不知道按結尾過濾任何文件,只需從函數dir_ls()
刪除regex = ...
部分。file = paste0("new_", files[i])
以“new_”作為新文件的前綴。 由於col.names = FALSE
是參數之一,因此您不需要colnames(tmp_content) <- NULL
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.