我试图将其名称作为日期的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/