我试图只读取合并到 data.frame 个列表中的多个 .xlsx 文件的尾部
I am trying to read only the tail of multiple .xlsx files merged into a data.frame of lists
我正在尝试将多个 .xlsx sheet 合并到 r 中的一个数据文件中,但只提取每个 sheet 的最后一行。
我是一名临床学者,我们目前有一个通过启用宏的 excel 传播 sheet 实现的预测算法。此启用宏的传播sheet 将 .xlsx sheet 输出到预先指定的文件夹中。
不幸的是,它在输出 .xlsx 中插入了一系列测试行。此外,用户有时会多次输入相同的数据,直到输入正确为止。出于这个原因,在清理后的数据中,我们只希望包含每个 .xlsx 文件的最后一行。
我已经成功地合并了所有文件,使用下面的代码,主要是由于 help/code 我已经设法从这个社区找到。
不幸的是,我遇到了以下错误消息。见下文
library(plyr)
library(dplyr)
library(readxl)
#file directory where the .xlsx files are to be listed below path <- "//c:/documents"
filenames_list <- list.files(path= path, full.names=TRUE)
All_list <- lapply (filenames_list,
function(filename){
print(paste("Merging",filename,sep = " "))
read.xlsx(filename)
})
#this below code doesnt work
#it returns the following error
# Error in x[seq.int(to = xlen, length.out = n)] :
# object of type 'S4' is not subsettable
tail_only_list_df <- lapply (All_list,
function(newtail){
tail(newtail, 1)
})
final_df <- rbind.fill(tail_only_list_df)
尝试执行以下操作:
df <- do.call(rbind, lapply(filenames_list, function(filename)
tail(openxlsx::read.xlsx(filename), 1)))
或者如果您已经有 excel 个文件列表,则执行
df <- do.call(rbind, lapply(All_list, tail, 1))
我正在尝试将多个 .xlsx sheet 合并到 r 中的一个数据文件中,但只提取每个 sheet 的最后一行。
我是一名临床学者,我们目前有一个通过启用宏的 excel 传播 sheet 实现的预测算法。此启用宏的传播sheet 将 .xlsx sheet 输出到预先指定的文件夹中。
不幸的是,它在输出 .xlsx 中插入了一系列测试行。此外,用户有时会多次输入相同的数据,直到输入正确为止。出于这个原因,在清理后的数据中,我们只希望包含每个 .xlsx 文件的最后一行。
我已经成功地合并了所有文件,使用下面的代码,主要是由于 help/code 我已经设法从这个社区找到。
不幸的是,我遇到了以下错误消息。见下文
library(plyr)
library(dplyr)
library(readxl)
#file directory where the .xlsx files are to be listed below path <- "//c:/documents"
filenames_list <- list.files(path= path, full.names=TRUE)
All_list <- lapply (filenames_list,
function(filename){
print(paste("Merging",filename,sep = " "))
read.xlsx(filename)
})
#this below code doesnt work
#it returns the following error
# Error in x[seq.int(to = xlen, length.out = n)] :
# object of type 'S4' is not subsettable
tail_only_list_df <- lapply (All_list,
function(newtail){
tail(newtail, 1)
})
final_df <- rbind.fill(tail_only_list_df)
尝试执行以下操作:
df <- do.call(rbind, lapply(filenames_list, function(filename)
tail(openxlsx::read.xlsx(filename), 1)))
或者如果您已经有 excel 个文件列表,则执行
df <- do.call(rbind, lapply(All_list, tail, 1))