与使用read_excel导入Excel相关的错误

问题描述 投票:0回答:1

我是R的新手,正在研究read_excel()和excel_sheets()是如何工作的,试图在下面使用两个这样的代码。这些是为了阅读excel文件的第二张。

output <- read_excel(excel_sheets("population.xlsx")[2], 
            path = "population.xlsx")

output <- read_excel(excel_sheets("population.xlsx"), 
         sheet = 2, path = "population.xlsx")

第一个代码成功运行,但第二个代码没有错误

Error: length(x) == 1L is not TRUE

我想知道它发生的原因以及我如何解决它。

read_excel的文档说它可以使用'sheet'参数来选择要读取的工作表,我猜这与说明字符向量的顺序编号相同(即在这种情况下为excel_sheets("population.xlsx")[2])。

r data-import readxl
1个回答
2
投票

只是read_excel(path = "population.xlsx", sheet = 2)应该工作。您的第一个代码是获取所有工作表的列表,然后选择第二个的名称; read_excel接受整数位置和工作表名称作为sheet的参数。

你可能会感到困惑,因为你需要了解一些关于argument matching的事情;命名参数匹配,然后从左到右匹配。所以在第一个例子中,指定了path,然后将excel_sheets调用传递给sheet参数。在第二个中,你指定sheet,所以我认为它将传递给range参数,该参数应该只接受长度为1的字符向量。这就是你所遇到的错误的根源。

© www.soinside.com 2019 - 2024. All rights reserved.