r - 加入列表列表中的数据
问题描述
我正在使用 readxl 包从多个 excel 文件中导入数据,并在我的脚本中创建了一个函数,以便我只导入我需要的特定工作表
read_excel_sheets <- function(excelDoc) {
sheets <- readxl::excel_sheets(excelDoc)
sheets <- sheets[4:6]
x <- lapply(sheets, function(X) readxl::read_excel(excelDoc, sheet = X))
return(x)
}
#load files in folder
rawfiles <- list.files()
IMPORT <- lapply(rawfiles, FUN = read_excel_sheets)
将我文件夹中的文件加载到我的脚本中后,IMPORT 变成了一个列表 [10],其中包含列表 [3],基本上是列表中的列表。
不幸的是,我不能使用 reduce(full_join) 将我的数据收集到一个数据表中。我尝试只使用一个 excel 文件并使用 unlist() 来查看是否可以将我的工作表从列表列表中取出,但这没有用。
Test <- read_excel_sheets("Hop_L_Trial1.xlsx")
Test_Test <- unlist(Test)
我也试过
rawfiles <- list.files()
IMPORT <- lapply(rawfiles,
FUN = read_excel_sheets)
Test_3 <- rbindlist(IMPORT)
并收到错误“第 1 项的第 1 列长度为 2,与长度为 6 的第 2 列不一致。仅回收长度为 1 的列。” 任何关于如何将我的数据加入一个数据表的建议将不胜感激,谢谢。
解决方案
对于这种data.table::rbindlist
方法,只需设置fill=T
:
library(data.table)
dt_list = lapply(5:10, function(i) {
data.table(rnorm(i))
})
dt=rbindlist(dt_list, fill=T)
推荐阅读
- node.js - 尝试安装 react 时如何解决操作不允许的错误?
- function - powershell 在脚本函数中使用 where-object 不起作用
- azure-devops - 您可以在多阶段 devops 管道的条件语句中使用构建标签吗
- python - Altair 中的对数滑块
- r - RStudio 不会在新机器上渲染 Plotly 绘图
- python - 我如何从这个网站上抓取一个随机生成的句子
- python - Python 和 Scrapy - Scraper 不返回结果
- php - ServiceProvider 已注册但在控制器中不起作用
- c++ - 如何为基于范围的 for 重载 std::list 的取消引用运算符?
- google-cloud-platform - artman googleapis google Healthcare api 和 google 的 grpc fhir repo 无法生成客户端?