R-studio服务器在执行简单的if-else代码后返回错误
我目前正面临这个问题。分析一个大数据集(大约300万个观测值),我需要将一个变量从一种格式转换为另一种格式。具体地说,我有几家公司的成立日期,但有两种格式:R-studio服务器在执行简单的if-else代码后返回错误,r,if-statement,error-handling,try-catch,rstudio-server,R,If Statement,Error Handling,Try Catch,Rstudio Server,我目前正面临这个问题。分析一个大数据集(大约300万个观测值),我需要将一个变量从一种格式转换为另一种格式。具体地说,我有几家公司的成立日期,但有两种格式:YYYY或MM-DD-YYYY,或者最后4个字符始终与年份相关的其他可能性 我需要的只是这一年,所以我开发了以下代码: library(stringi) for (i in 1:length(amadeus$Dateofincorporation) { if(nchar(amadeus$Dateofincorporation[i])
YYYY
或MM-DD-YYYY
,或者最后4个字符始终与年份相关的其他可能性
我需要的只是这一年,所以我开发了以下代码:
library(stringi)
for (i in 1:length(amadeus$Dateofincorporation) {
if(nchar(amadeus$Dateofincorporation[i]) == 4 &
!is.na(amadeus$Dateofincorporation[i])) {
amadeus$Dateofincorporation[i] <- amadeus$Dateofincorporation[i]
}
else if (nchar(amadeus$Dateofincorporation[i]) != 4 &
!is.na(amadeus$Dateofincorporation[i])) {
amadeus$Dateofincorporation[i] <- stri_sub(amadeus$Dateofincorporation[i],-4,-1)
}
else {
amadeus$Dateofincorporation[i] <- amadeus$Dateofincorporation[i]
}
}
库(stringi)
适用于(1中的i:长度(amadeus$DateOfInorporation){
如果(nchar(amadeus$DateOfInporation[i])==4,
!is.na(amadeus$Dateofincorporation[i])){
amadeus$DateOfInorporation[i]它可能看起来很奇怪,但我重新运行了代码,现在它可以工作了。我的意思是,仍然给出上述警告,但输出是所需的。
我认为理解这些警告的由来并不重要,所以谢谢大家!我认为问题在于使用plyr软件包。我很少使用非base R软件包,一开始使用plyr,我就开始收到这些看似无辜的声明的奇怪警告消息,比如创建一个新的向量。我从s中删除了plyr脚本并重新运行我的代码,所有警告消息都消失了!这可能与您发布的代码无关。每次我从以前的会话中的“绘图”选项卡中保留绘图时,都会发生这种情况,即使在我删除了绘图后也是如此;警告消息会在我输入第一行代码后出现
require(package)
1: In doTryCatch(return(expr), name, parentenv, handler) :
display list redraw incomplete
2: In doTryCatch(return(expr), name, parentenv, handler) :
invalid graphics state
第二条消息的重复次数与绘图的次数相同
在“绘图”选项卡的左侧
我通常通过输入来消除这些警告
dev.off()
请参见在寻求帮助时,您应该包括一个简单的示例输入和所需的输出,可用于测试和验证可能的解决方案。如果您的代码仅获得最后四位数字,这不是等效的吗?sub(“*(\\d{4}$)”,“\\1”,amadeus$DateOfInporation)
@MrFlick抱歉并感谢您提醒我。C.Braun是的,事实上,您的代码是几种可能的等效方法中的一种。警告仍然困扰着我们所有人,如果您能找到它发出的原因,那将是一件好事。我在数据表1.11.4中,警告仍然不稳定地出现,即不可重复的方式。