簡體   English   中英

使用 R 重命名文件夾中的文件

[英]Renaming files in folder with R

我的工作目錄中有許多文件具有相同的名稱,后跟一個數字,例如“name_#.csv”。 它們各自包含相同格式的時間序列數據。

文件名很長,所以當我將它們導入數據幀時,df 名稱超長,我想將每個重命名為“df_#”,這樣我就可以分別創建另一個 function 到 plot 或快速創建 plot,例如, 前三個沒有輸入這個 megalong 名稱。

我不想將任何內容連接到當前名稱,而是取每個名稱並在遍歷文件時將其重命名為完全以列表中的數字結尾。

這是我到目前為止的一個例子。

name = list.files(pattern="*.csv")
for (i in 1:length(name)) assign(paste0("df", name[i]), read.csv(name[i], skip = 15 ))

這只是在前面添加一個“df”而不是更改整個名稱。

我也不確定以這種方式進行是否有意義。 本質上,我的數據是同一樣本的時間序列數據的三個副本,我最終想一次取三個,並在同一張圖上取 plot 次,依此類推,直到文件結束。

您可以在全局環境中命名文件,而無需重命名文件夾中的原始文件,只需告訴 R 您希望在循環中為其分配該名稱,並對原始代碼進行一些修改。 例如:

# Define file path to desired folder
file_path <- "Desktop/SO Example/" #example file path, though could eb working directory

# Your code to get CSV file names in the folder
name <- list.files(path = file_path, pattern="*.csv")

# Modify the loop to assign a new name
for(x in seq_along(name)){
  assign(paste0("df_", x), 
         read.csv(paste0(file_path, name[x]), skip = 15))
}

這會將數據加載為df_1df_2等。我相信您使用的是paste0("df", name[i]) assign function ,它將“df”與 position i中的文件名連接起來,而不是I的值在循環中 - 這就是為什么你在導入時將df添加到每個名稱的前面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM