Ошибка, связанная с импортом в Excel с использованием read_excel - PullRequest
0 голосов
/ 21 февраля 2019

Я новичок в 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 голосов
/ 21 февраля 2019

Просто read_excel(path = "population.xlsx", sheet = 2) должно работать.Ваш первый код получает список всех листов и затем выбирает имя второго;read_excel принимает как целочисленную позицию, так и имена листов в качестве аргумента для sheet.

Вы можете быть сбиты с толку, потому что вам нужно что-то узнать о соответствии аргумента ;именованные аргументы сопоставляются, а затем сопоставляются слева направо.Таким образом, в первом примере указывается path, а затем вызов excel_sheets передается в аргумент sheet.Во втором вы указываете sheet, и поэтому я думаю, что он будет передан аргументу range, который должен принимать только символьный вектор длины 1. Это источник вашей ошибки.

...