r - 在 R 中读取 xlsx 文件时,路径必须是字符串错误
问题描述
library(dplyr)
library(data.table)
library(readxl)
macro <-
list()
macro$filepath <-
'C:\\Users\\TMC\\Documents'
macro$file <-
list.files(
macro$filepath,
pattern = 'EventData.xlsx',
full.names = TRUE)
macro$sheet <-
'FY21'
macro$first_dt <-
'2021-02-01' %>% as.Date
dat <-
macro$file[regexpr('~', macro$file) < 0] %>%
read_xlsx(., sheet = macro$sheet) %>%
data.table
dat <-
dat[!(DESCRIPTION %in% 'AEG')]
macro$keep <-
c(
'Product vs. buzz',
'CATEGORY',
'JUN',
'JUL',
'AUG',
'SEP',
'OCT',
'NOV',
'DEC',
'JAN',
'FEB',
'MAR',
'APR',
'MAY')
dat <-
dat[
,
intersect(macro$keep, dat %>% names),
with = FALSE]
setnames(
dat,
c('Product vs. buzz', 'CATEGORY'),
c('evt_type', 'raw'))
dat[, raw := (raw %>% tolower)]
##ISSUE IS HERE
macro$category <-
list.files(
macro$filepath,
pattern = 'BrandEventCategoryMapping',
full.names = TRUE) %>%
read_xlsx %>%
data.table
大家好,我正在尝试在 R 中运行上述代码。当我尝试读取宏 $category 部分中的 excel 文件时,我收到以下错误:
Error: `path` must be a string
谁能帮助我,让我知道我应该做什么或编辑来解决这个问题?我不擅长 R,不幸的是,我不得不在时间敏感的最后期限内运行别人的脚本。我真的很感激一些帮助!
解决方案
list.files
返回多个文件名。你不能一口气读完所有这些read_xlsx
。您可能需要使用lapply
/map
来读取文件。
library(magrittr)
result <-
list.files(
macro$filepath,
pattern = 'BrandEventCategoryMapping',
full.names = TRUE) %>%
purrr::map_df(read_xlsx)
#If you want them as list use map
#purrr::map(read_xlsx)