【发布时间】:2021-12-05 12:45:02
【问题描述】:
我正在尝试从 xls 文件中提取数据,这些文件始终具有相同的结构(见下文)。提取感兴趣的范围后:
all_data <- (file.path(wdir, 'data_input.xlsx'))
excel_sheets(path = all_results)
tab_names <- excel_sheets(path = all_results)
extracted_data <- lapply(tab_names, function(x) read_excel(all_data,
sheet = x, col_names=FALSE, range = "B2:B4"))
我想把所有东西都变成一个宽格式。然而,当我使用:
extracted_data_wide <- extracted_data %>% bind_rows(extracted_data, .id=NULL)
它似乎重复所有输入一次,这对我来说是不合理的。有没有人可以帮助我了解问题出在哪里,或者谁能为我的问题提供不同的解决方案?我也想过pivot_wider,但它不能像我想象的那样处理输出extracted_data。
【问题讨论】:
-
您能否澄清一下您的预期结果应该是什么样子?如果您想要宽幅格式,也许您正在寻找
bind_cols? -
这是一个很好的开始,它实际上显示了我面临的问题。如果我使用
bind_cols,我的输出仍然会显示两次结果(它重复提取的数据帧),我不明白为什么会发生这种情况。我想要一个包含两列 (c('foo1', 'foo2')) 和与工作表一样多的行的数据框(在这种情况下为 4 个工作表,尽管在我更复杂的情况下有数百个工作表)。我不明白我的代码问题出在哪里,因此感谢您提供任何帮助