How to initialize data.frame with column of type POSIXct?

前端 未结 2 1953
余生分开走
余生分开走 2021-01-08 00:43

I can initialize a data.frame via

df <- data.frame(a=numeric(), b=character())

But how do I define a column of type POSIXct?

<         


        
相关标签:
2条回答
  • 2021-01-08 01:31

    You can try

    df <- data.frame(a=numeric(), b=character(), c=as.POSIXct(character()))
    

    Similarly, you can create a POSIXct column of NAs in a data frame with > 0 rows by creating a new column with as.POSIXct(NA).

    0 讨论(0)
  • 2021-01-08 01:46

    An additional tip to the above initialization: If you begin rbind() activities to add rows to this empty data frame, you may encounter an error like the following if you follow this pattern:

    oneDF <- rbind(oneDF,twoDF,stringsAsFactors=FALSE)
    Error in as.POSIXct.default(value) :
      do not know how to convert 'value' to class "POSIXct"
    

    I finally discovered that removing the stringsAsFactors=FALSE allowed for the POSIXct value (both integer time and time zone) to transfer to the target DF.

    oneDF <- rbind(oneDF,twoDF)
    

    examining the result:

    unclass(oneDF$mytime)
    [1] 1282089600
    attr(,"tzone")
    [1] "GMT"
    
    0 讨论(0)
提交回复
热议问题