我是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]
)相同。
答案 0 :(得分:2)
read_excel(path = "population.xlsx", sheet = 2)
应该可以工作。您的第一个代码获取所有工作表的列表,然后选择第二个工作表的名称。 read_excel
接受整数位置和工作表名称作为sheet
的参数。
您可能会感到困惑,因为您需要了解有关argument matching的一些知识;命名的参数被匹配,然后从左到右匹配。因此,在第一个示例中,指定了path
,然后将excel_sheets
调用传递给sheet
参数。在第二个中,您指定sheet
,因此我认为它将传递给range
参数,该参数应该只接受长度为1的字符向量。这就是错误的根源。