我目前正面临这个问题。分析大数据集(大约300万个观测值),我需要将变量从一种格式转换为另一种格式。具体来说,我有几家公司成立的日期,但有两种格式:YYYYMM-DD-YYYY,或其他可能的格式,其后四个字符始终与年份相对。

我只需要一年的时间,因此我开发了以下代码:

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]
    }
}

该代码执行了很长时间,然后返回输出:



有人对如何处理有想法吗?

附言该 vector 当前是字符 vector ,您认为这有影响吗?

最佳答案

看起来可能很奇怪,但是我重新运行了代码,现在可以了。我的意思是,仍然给出上述警告,但输出是所需的警告。
我认为了解警告的来源无关紧要,所以谢谢大家!

08-24 15:16