[英]Loading multiple files in r within different folders
如何從 r 中不同文件夾的多個文件加載,然后進行行綁定。
例如,文件夾被命名為“week1”、“week2”、“week3”……它們都在主文件夾“Year_2020”中。
在每個每周文件夾“week1”,week2”,......有7個不同的文件夾對應於一周中的每一天,它們以YYYYMMDD格式命名。所以文件夾“week1”有7個不同的文件夾名稱“20200101”,“20200102” ",....."20200107"。每個文件夾都有一個 csv 文件名 VIEW_YYYYMMDD.csv 如下所示。但它們沒有任何日期列。
文件夾結構如下
YEAR_2020 week1 20200101 view_20200101.csv
week1 20200102 view_20200102.csv
-------- -----------------
week1 20200107 view_20200107.csv
week2 20200108 view_20200108.csv
------ -------- -----------------
csv 文件樣本
df <- data.frame(Emp_Id = c(1,1,1,1,2,2,2,3,3),
time = c(5,2,80,3,3,1,90,80,5),
A = c(111,111,111,222,222,222,333,333,333))
Emp_Id time
1 5 111
1 2 111
1 80 111
1 3 222
2 3 222
2 1 222
2 90 333
3 80 333
3 5 333
我的問題是我在 csv 文件中沒有任何日期列,並且想首先為每個具有相應日期的單個文件添加一個日期列,然后在 r 中加載和行綁定?
大多數解決方案都要求將所有文件保存在單個文件夾中,但我有 52 個文件夾對應於 52 周的“YEAR_2020”文件夾,每個文件夾有 7 個文件夾,每個文件夾對應於每周的每個日期。 所以有365個“view_yyyymmdd.csv”文件
請幫忙!
嘗試這樣的事情:
library(tidyverse)
library(lubridate)
main_folder %>%
list.files(full.names = TRUE, recursive = TRUE) %>%
map(read_csv) %>%
setNames(., basename(.)) %>%
imap(
~mutate(.x, date = ymd(str_extract(.y, "[0-9]+")))
) %>%
bind_rows()
其中main_path
是包含周文件夾的文件夾的路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.