与使用read_excel

时间:2019-02-21 06:57:03

标签: r data-import readxl

我是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])相同。

1 个答案:

答案 0 :(得分:2)

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

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