如何指定要加载到r中的单元格

如何指定要加载到r中的单元格,r,excel,R,Excel,我想从多个excel工作簿导入特定单元格。每个工作簿都有一个名为“结果摘要”的工作表。我已经搞清楚了。我遇到的问题是射程参数。我想从每个工作簿中导入单元格B2:B3和单元格C6:C7。因此,它们都为每个数据集形成两列 有了这些代码,我可以导入该目录中所有感兴趣的excel文件。它只对range=B6:B7起作用,而对range=c(“B2:B3”、“C6:C7”)不起作用 我想要的是得到两列,每个数据集中有一个观测值导入到R中。谢谢 file_path <- "data_raw/

我想从多个excel工作簿导入特定单元格。每个工作簿都有一个名为“结果摘要”的工作表。我已经搞清楚了。我遇到的问题是射程参数。我想从每个工作簿中导入单元格
B2:B3
和单元格
C6:C7
。因此,它们都为每个数据集形成两列

有了这些代码,我可以导入该目录中所有感兴趣的excel文件。它只对
range=B6:B7
起作用,而对
range=c(“B2:B3”、“C6:C7”)
不起作用

我想要的是得到两列,每个数据集中有一个观测值导入到R中。谢谢

file_path <- "data_raw/Result_Summary/"

file_path %>% list.files()

file_path %>%
  list.files() %>%
  .[str_detect(., ".xlsx")] -> xlsx_file_names

xlsx_file_names %>%
  purrr::map(function(file_name){ # iterate through each file name
    assign(x = str_remove(file_name, ".xlsx"), # Remove file extension ".xlsx"
           value = read_excel(paste0(file_path, file_name),sheet="Results Summary", range=c("B2:B3", "C6:C7")),
           envir = .GlobalEnv)
  })
文件\u路径%list.files()
文件路径%>%
list.files()%>%
[str_detect(,“.xlsx”)]->xlsx_文件名
xlsx_文件名%>%
映射(函数(文件名){遍历每个文件名
分配(x=str_remove(文件名“.xlsx”),#删除文件扩展名“.xlsx”
value=read\u excel(粘贴0(文件路径,文件名),sheet=“结果摘要”,range=c(“B2:B3”,“C6:C7”),
envir=.GlobalEnv)
})

当我尝试检索多个范围时,我得到一个明确的错误:
as.cell\u limits中的错误。字符(范围):长度(x)=1L不正确
。由此,我推断您可以为每个需要的范围调用一次
read\u excel
,或者使用一个超集范围调用一次,然后您可以处理从中删除不需要的列/行。@r2evans,感谢您回答我的问题。它工作得很好。我有一个关于你的代码的问题。请您解释一下为什么要重击此代码。[str_detect(,“.xlsx”)]->xlsx_文件名在括号内和括号前的点。我注意到,当我删除它们时,第一个块返回的逻辑结果是str_detect的典型结果,但是对于这两个块,实际的excel文件都返回了。xlsx扩展。感谢点(
)是管道中缀操作符
%>%
之前的数据的占位符。通常,
str\u detect
返回一个逻辑向量,但
str\u detect
意味着获取LHS数据(
),并根据从
str\u detect
返回的逻辑向量对其进行索引。但这些都不是我的密码,而是你的。也许你应该问问你借来/复制这段代码的人,也许他们能解释清楚。