Usando SAPPLIC no vetor de Posixct
Pergunta
Eu tenho o que pode ser uma pergunta muito simples. Quero processar uma coluna de objetos POSIXCT a partir de um DataFrame e gerar um vetor de strings DateTime. Eu tentei usar a seguinte chamada Sapply
dt <- sapply(df$datetime, function(x) format(x,"%Y-%m-%dT%H:%M:%S"))
mas sem sucesso. Eu continuo recebendo o seguinte erro:
> Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L, :
invalid 'trim' argument
Quando aplico essa função a um único objeto POSIXCT da coluna, não tenho nenhum problema. Então, estou perplexo no momento sobre qual é o problema. Eu preciso fazer algo especial com objetos POSIXCT?
Solução
format()
vai levar um argumento vetorial, entãoformat(df$datetime,"%Y-%m-%dT%H:%M:%S")
deve fazer o que você precisa.
Quando você usa o SAPPLIPLE, seus objetos são coagidos a numéricos e, portanto, o método de formato errado está sendo chamado. Você pode coagi -los de volta ao Posixct usando sapply(df$datetime, function(x) format(as.POSIXct(x, origin="1970-01-01"),"%Y-%m-%dT%H:%M:%S"))
, mas a menos que você tenha um motivo especial para usar apply
, basta usar o método acima