簡體   English   中英

R read_excel或readxl具有多個工作表的多個文件-綁定

[英]R read_excel or readxl Multiple Files with Multiple Sheets - Bind

我有一個充滿.xlsx文件的目錄。 他們都有多個工作表。 我想從所有文件中提取同一張紙並將它們附加到小標題中。

我發現了許多解決方案,可以從一個Excel文件中提取多個工作表。 但是,不是來自多個文件的一張紙。

我努力了:

    paths = as.tibble(list.files("data/BAH", pattern = ".xlsx", full.names = TRUE, all.files = FALSE))

    test <- paths %>% read_xlsx(sheet = "Portal", col_names = TRUE)

我知道“ paths”變量包含我所有帶有path的文件名。 但是,我不確定如何遍歷每個文件名,僅將特定的工作表=“ Portal”附加到csv文件。

錯誤是:

Error: path must be a string

我嘗試將路徑作為矢量,小標題傳遞,並嘗試對它進行下標。 全部失敗。

因此,總而言之。 我有一個xlsx文件目錄,我需要從每個文件中提取一張紙並將其附加到一個csv文件中。 我嘗試將purrr與某些地圖功能一起使用,但也無法使其正常工作。

我的目標是使用整潔的方式。

感謝您的任何提示。

您必須使用lapply()map() 嘗試

test <- lapply(paths, read_xlsx, sheet = "Portal", col_names = TRUE)

要么

library(purrr)
test <- map_dfr(paths, read_xlsx, sheet = "Portal", col_names = TRUE)

然后,您可以將數據框與

library(dplyr)
test %>% bind_rows()
library(tidyverse)    
library(readxl)
library(fs)

# Get all files
xlsx_files <- fs::dir_ls("data/BAH", regexp = "\\.xlsx$")

paths = as_tibble(list.files("data/BAH", pattern = ".xlsx", full.names = TRUE, all.files = FALSE))


#portal_tabs <- map_dfr(paths, read_xlsx, sheet = "Portal", col_names = TRUE)
portal_tabs <- map_dfr(xlsx_files, read_xlsx, sheet = "Portal", col_names = TRUE, .id = 'source')

暫無
暫無

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

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