r - 我正在尝试跳过r中此for循环中的错误和警告,但不起作用?

标签 r for-loop error-handling

我试图将其名称作为日期的csv文件读入for循环,然后在该文件实际存在时从该文件中打印出几列数据。我需要跳过没有任何数据的日期和实际上不存在的日期。当我输入代码时,没有输出,只是空白。为什么我的代码不起作用?

options(width=10000)

options(warn=2)

for(a in 3:5){
for(b in 0:1){
for(c in 0:9){
for(d in 0:3){
for(e in 0:9){

mydata=try(read.csv(paste("201",a,b,c,d,e,".csv",sep="")), silent=TRUE)

if(class(mydata)=="try-error"){next}

else{

    mydata$Data <- do.call(paste, c(mydata[c("LAST_UPDATE_DT","px_last")], sep=""))
    print(t(mydata[,c('X','Data')]))
}

}}}}}

最佳答案

这是一种读取所有文件的非常糟糕的方式。尝试这个:

f <- list.files(pattern="*.csv")
mydata <- sapply(f, read.csv, simplify=FALSE)

这将返回数据帧的列表mydata,每个列表都是相应文件的内容。

或者,如果您不想读入其他csv文件,则可以限制规范:
f <- list.files(pattern="201\\d{5}\\.csv")

并将所有内容组合到一个大数据框架中:
do.call(rbind, mydata)

关于r - 我正在尝试跳过r中此for循环中的错误和警告,但不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18090344/

相关文章:

C++:派生类对象被析构时释放动态内存

r - 对于每一行,按最大值对列名称进行排序

r - ggplot2:图例中的虚线

r - 如何在 R Shiny 的flexdashboard中创建以输入为条件的页面链接?

r - 基于组计算R中数据帧的行数

loops - gnuplot for 带间隔的循环

Javascript for 循环性能

python - 这本字典如何获取数据?

c++ - 当数组超出范围时,通过异常检查是否安全?

C队列程序在满时不给出溢出错误