0

I would like to convert a SpatVector column from character to POSIXct in R. Using as.POSIXct() doesn't throw an error or warning but the column is still character after.

f <- system.file("ex/lux.shp", package="terra")
v <- vect(f)

v$DateTime <- "2022-03-02 01:23:45"
class(v) # class = character

v$DateTime <- as.POSIXct(v$DateTime)
class(v) # class = character

class(as.POSIXct(v$DateTime)) # class = POSIXct
ia200
  • 255
  • 1
  • 9

2 Answers2

1

This is available in terra >= 1.7-39

library(terra)
#terra 1.7.39
f <- system.file("ex/lux.shp", package="terra")
v <- vect(f)
v$DateTime <- "2022-03-02 01:23:45"
class(v$DateTime) 
#[1] "character"

v$DateTime <- as.POSIXct(v$DateTime)
class(v$DateTime) 
#[1] "POSIXct" "POSIXt" 
Robert Hijmans
  • 40,301
  • 4
  • 55
  • 63
0

As Robert mentioned, there is no support in terra yet. Below solution with sf package:

f <- system.file("ex/lux.shp", package="terra")
library(sf)

v <- st_read(f)
v$DateTime <- as.POSIXct("2022-03-02 01:23:45")

class(v$DateTime)
#> [1] "POSIXct" "POSIXt"

Created on 2022-03-07 by the reprex package (v2.0.1)

Grzegorz Sapijaszko
  • 1,913
  • 1
  • 5
  • 12