日期作为字符通过,需要在 R 中修复

  • 本文关键字:字符 日期 r date
  • 更新时间 :
  • 英文 :


我已经将一个.csv文件导入到R中。这些文件有几列(我简化为 4 列(,其中两列 - assignedcompleted - 应该是日期,但是,它们作为"字符"出现。我需要将它们读作日期。

我花了几个小时寻找和尝试不同的东西,但找不到解决方案。这是数据的样子(前 3 行,我总共有 5K 行(:

       id assigned completed score
1:     54 11/10/16  11/10/16     0
2:     54 11/21/16  11/21/16     7
3:     54  1/26/17   1/26/17    11

> summary(data_subset)
       id        assigned          completed        
 Min.   :   54   Length:5991        Length:5991       
 1st Qu.: 1375   Class :character   Class :character  
 Median : 1910   Mode  :character   Mode  :character  
 Mean   : 2145                                        
 3rd Qu.: 2199                                        
 Max.   :10410                                        
     score      
 Min.   : 0.00  
 1st Qu.: 4.00  
 Median : 7.00  
 Mean   : 8.33  
 3rd Qu.:12.00  
 Max.   :27.00  
 NA's   :1   

我尝试在assigned列上lubridate,但它覆盖了NA的所有值。

library(lubridate)
data_subset$assigned <- mdy(data_subset$assigned)

       id assigned completed score
1:     54     <NA>  11/10/16     0
2:     54     <NA>  11/21/16     7
3:     54     <NA>   1/26/17    11

我正在寻找一种方法来使assignedcompleted被读取为日期 - 无论是在.csv导入期间发生,还是在R中之后通过数据操作。

导入

后的操作方法:

data_subset$assigned <- as.Date(data_subset$assigned,'%m/%d/%y') # This uses base R
data_subset$completed <- as.Date(data_subset$completed,'%m/%d/%y') # The '%/m/%d/%y' specifies the format of your date

旁注:我一直在研究类似的问题,lubridate最近一直在做奇怪的事情。我怀疑原因可能部分与R版本有关。 lubridate似乎在R 3.3.3上比在r-Microsoft 3.3.3上工作得更好。我在 r-mircosoft 发行版上缺少软件包中的某些功能。也许缺少一些底层功能,导致所有内容都转到 NA。同样,这只是猜测,但也许它会带来答案。

最新更新