如何将数据框中的日期列转换为R中的日期

问题描述 投票:1回答:1

所以这里是一列日期,我想将其转换为R中的日期。它是一个朱利安日期,其中前4位代表年份,最后3位是当年1日的天数。有很多0,如果没有相关的日期,系统将输出。我为它写的函数如下。

   julian=function(x)
      {
      if(x>0)
      {
      x=as.character(x)
      year=substr(x,1,4)
      days=as.integer(substr(x,5,7))-1
      return(as.Date(paste("01/01/",year),format="%m/%d/%Y")+days)
      }
      return(NULL)
  }

我想在整个专栏中应用这个。我尝试使用lapply但每次我尝试将列表转换为数据帧时,我得到随机整数。任何帮助都会非常感谢!

enter image description here

r
1个回答
0
投票

sapply(或将lapply的结果取消列出)将日期转换为数值。如果您的列名为df$date,则可以执行以下操作:

df$new_date <- do.call(c, lapply(df$date,julian))

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.