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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top