【发布时间】:2021-02-26 08:55:38
【问题描述】:
我正在运行一个循环来读取我计算机中的许多 txt 文件,我愿意将它们全部合并到一个大数据框中。
listofdf <- list()
for (i in 1:5) {
temp_data <- read_delim(files_to_read[i], delim = "\t")
temp_data <- temp_data %>%
select(!c("Analysis.Index", "Participant.Name", "Identity", "Landmarks"))
listofdf[[i]] <- temp_data
}
我的问题是其中一些数据框有列而其他没有 - 这意味着我无法使用该功能
do.call(rbind,listofdf)
将它们全部合并。
当我尝试在循环中使用“选择”时,我得到了错误:
Error: Can't subset columns that don't exist.
x Column `Analysis.Index` doesn't exist.
这是有道理的,因为并非所有数据帧都有那些多余的不需要的列,但问题是这个错误会破坏我的循环并停止它。
我能做什么?谢谢!
【问题讨论】:
-
尝试
data.table::rbindlist(lapply(files_to_read, data.table::fread), use.names=TRUE, fill = TRUE)获取一个包含所有文件的大型data.table,然后是子集。