【发布时间】:2020-10-05 07:21:08
【问题描述】:
我正在尝试将多个 excel 文件全部加载到一个数据框中。有些文件在我正在寻找的工作表中没有任何数据,所以我正在寻找编写代码来收集确实有数据的文件,但也告诉我哪些文件没有被包括在内,因为它们没有没有任何数据。如果我在 ifelse 语句的 no 部分中简单地“打印(i)”,我编写的代码确实告诉我哪些没有数据。但是,一旦我尝试做其他事情而不是打印,它似乎就忽略了我!真让人生气。如何收集对总数据框没有贡献的文件的名称?
这很好用:
library(readxl)
files <- list.files(path="./sfiles", pattern = "*.xls", full.names = T)
alldiasendcgmlist <- lapply(files,function(i){
ifelse(nrow(i)==NULL, NULL, i$name<-i)
x= read_excel(i,sheet=2,skip=4)
ifelse(nrow(x)>1, x$ID <- i, print(i))
x
})
但只要我想在向量中收集这些打印,向量就会继续保持为空:
library(readxl)
files <- list.files(path="./sfiles", pattern = "*.xls", full.names = T)
vectornodata <- character(0)
alldiasendcgmlist <- lapply(files,function(i){
ifelse(nrow(i)==NULL, NULL, i$name<-i)
x= read_excel(i,sheet=2,skip=4)
ifelse(nrow(x)>1, x$ID <- i, nodata <- append(vectornodata, i))
x
})
救命!
【问题讨论】:
标签: r excel for-loop append na