Ошибка, связанная с импортом в Excel с использованием read_excel
Я новичок в 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 говорится, что он может использовать аргумент "лист" для выбора листа для чтения, который, как я полагаю, идентичен указанию номера порядка символьного вектора (т.е. excel_sheets("population.xlsx")[2]
в этом случае).
1 ответ
Просто read_excel(path = "population.xlsx", sheet = 2)
должно сработать. Ваш первый код получает список всех листов и затем выбирает имя второго; read_excel
принимает в качестве аргумента как целочисленную позицию, так и имена листов sheet
,
Вы можете быть смущены, потому что вам нужно что-то знать о сопоставлении аргументов; именованные аргументы сопоставляются, а затем сопоставляются слева направо. Итак, в первом примере path
указывается, а затем excel_sheets
вызов передается sheet
аргумент. Во втором вы указываете sheet
и поэтому я думаю, что это будет передано range
аргумент, который должен принимать только символьный вектор длины 1. Это источник вашей ошибки.