当前位置: 首页 > 知识库问答 >
问题:

在R[重复]中循环时跳过错误

丌官哲彦
2023-03-14

你好,我试图跳过一些错误消息并通过将空csv写入我的工作d目录来继续循环。

############################## 

Friday <- Sys.Date()-3

# Get Previous 4 days
Thursday <- Friday - 1
Wednesday <- Thursday -1
Tuesday <- Wednesday -1
Monday <- Tuesday -1

# format dates for loop
Friday <- format(Friday, "%Y%m%d")
Thursday<- format(Thursday, "%Y%m%d")
Wednesday<- format(Wednesday, "%Y%m%d")
Tuesday<- format(Tuesday, "%Y%m%d")
Monday<-format(Monday, "%Y%m%d")

# STOCKs to pull
stock1 <- c ("SPY.A","PCMI.O", "AMZN.O") # should generate error on 2nd occurance

# create function to retrieve data
pull = function (stock1){

AAPLFRI<- read.delim(header=TRUE, stringsAsFactor=FALSE,
                   paste(sep="",
                         "http://hopey.netfonds.no/tradedump.php?date=",
                         Friday,"&paper=",stock1,"&csv_format=txt"))

AAPLTHURS <- read.delim(header=TRUE, stringsAsFactor=FALSE,
                      paste(sep="",
                            "http://hopey.netfonds.no/tradedump.php?date=",
                            Thursday,"&paper=",stock1,"&csv_format=txt"))

AAPLWED <- read.delim(header=TRUE, stringsAsFactor=FALSE,
                    paste(sep="",
                          "http://hopey.netfonds.no/tradedump.php?date=",
                          Wednesday,"&paper=",stock1,"&csv_format=txt"))

AAPLTUES <- read.delim(header=TRUE, stringsAsFactor=FALSE,
                     paste(sep="",
                           "http://hopey.netfonds.no/tradedump.php?date=",
                           Tuesday,"&paper=",stock1,"&csv_format=txt"))

AAPLMON <- read.delim(header=TRUE, stringsAsFactor=FALSE,
                    paste(sep="",
                          "http://hopey.netfonds.no/tradedump.php?date=",
                          Monday,"&paper=",stock1,"&csv_format=txt"))

#Eliminate unwanted Columns in Data
AAPLMON <- AAPLMON[,c(1:3)]
AAPLTUES <- AAPLTUES[,c(1:3)]
AAPLWED <- AAPLWED[,c(1:3)]
AAPLTHURS <- AAPLTHURS[,c(1:3)]
AAPLFRI <- AAPLFRI[,c(1:3)]


# Try to skip over errors when binding data

if (is.error(rbind(AAPLMON,AAPLTUES,AAPLWED, AAPLTHURS, AAPLFRI ))){

SERIES <- 1

}

SERIES <- rbind(AAPLMON,AAPLTUES,AAPLWED, AAPLTHURS, AAPLFRI )

#Write .CSV File
write.csv(SERIES,paste(sep="",stock1,"_",Friday,".csv"))

}

# Use Apply to repeat through "stock1" 
apply(t(stock1), 2, pull)-> listo

问题是没有is。我知道的错误()?我不知道如何实现try()包装器来获得所需的结果。

共有1个答案

庞旺
2023-03-14
tryit <- try(rbind(AAPLMON,AAPLTUES,AAPLWED, AAPLTHURS, AAPLFRI ))

if(inherits(tryit, "try-error")){
    # do something when error
} else {
    # do something when no error
}
 类似资料:
  • 有没有一种优雅的方法可以跳过while-loop中的迭代? 我想做的是

  • 我目前正在学习UdemyJava课程,并正在练习我迄今为止学到的东西。 我有以下简单的程序,我计划使用它来让用户输入他的名字。 我想让程序在用户输入空白名称时重复错误消息,而不是从头开始重新启动整个程序。 例如,当用户输入一个空白的名字时,我希望程序继续重复“请输入至少1个字符的名字”,当用户输入一个空白的姓氏时,程序继续重复“请输入至少1个字符的姓氏”,直到用户输入一个有效的名字。 然而,当前当

  • 问题内容: 我正在尝试使用for循环跳过值。就像是 有什么建议?谢谢! 问题答案: 在循环开始时使用它: 这比仅继续进行要好得多。您不想迭代128到159。你会浪费时间。

  • Java多线程跳过循环并给出错误的结果 计数的最终值应该是199998,但它没有给出期望的结果。为什么线程缺少循环???

  • 这是我的代码: 我的问题是如何检查分数是否在范围内,如果输入了错误的输入,如何使循环重复。当我试图运行程序并输入一个超过范围的输入时,它会转到下一个评估数字,而不是再次尝试,直到它是真的。

  • 我在循环中输入name和num时出错,