Eu tenho um conjunto de dados de tempos que estou tentando comparar. Usei timeDiff() para calcular a diferença de tempos das colunas em meus dados. Agora desejo selecionar quaisquer horários que estejam mais de uma hora fora dos meus horários originais. Isso é bom quando os tempos estão a mais de uma hora na escala positiva, mas quando algum tempo é exibido na escala negativa, estou lutando para obtê-los.
dset
localtime Tb_localtime timeDiff
2024-08-17 11:00:00 2024-08-17 12:10:00 70
2024-08-17 13:00:00 2024-08-17 13:12:00 12
2024-08-17 11:00:00 2024-08-17 11:08:00 8
2024-08-17 13:00:00 2024-08-17 12:56:00 -4
2024-08-17 14:00:00 2024-08-17 12:58:00 -62
2024-08-17 14:30:00 NA NA
Eu tentei fazer
which(dset$timeDiff > 60) #returns integer(0)
Tenho certeza de que isso se deve aos NAs nos dados, mas também tenho certeza de que não é a maneira correta de lidar com os valores negativos.
Para filtrar linhas onde a diferença de horário é superior a 60 minutos (positiva ou negativa), você pode usar a
abs()
função em combinação comis.na()
para lidar com quaisquer valores ausentes:Não há necessidade de pacotes externos. Basta usar
abs()
emsubset()
: