nanotime:如何处理 NAs in a tibble?
nanotime: how to deal with NAs in a tibble?
我正在使用出色的 nanotime
包来存储我的时间戳,但是当我的 tibble
包含缺失值时我无法使该包工作。
考虑一下:
library(nanotime)
library(tibble)
library(dplyr)
tibble(time = c('2020-01-01 10:10:10.123456',
NA,
'2020-01-01 10:10:10.123456')) %>%
mutate(enhance = nanotime(time,
tz = 'GMT',
format = '%Y-%m-%d %H:%M:%E9S'))
Error in RcppCCTZ::parseDouble(x, fmt = format, tz = tz) :
Parse error on NA
我在这里错过了什么?不幸的是,使用 na.rm = TRUE
不起作用。
谢谢!
问题是 NA
是逻辑类型,您需要让列中的所有值都具有相同类型。我们可以使用 as.integer64
将逻辑 NA
替换为 integer64
NA
.
library(nanotime)
tbl <- tibble::tibble(time = c('2020-01-01 10:10:10.123456',
NA,
'2020-01-01 10:10:10.123456'))
tbl$enhance <- as.integer64(NA)
tbl$enhance[!is.na(tbl$time)] <- nanotime(na.omit(tbl$time), tz = 'GMT',
format = '%Y-%m-%d %H:%M:%E9S')
nanotime(tbl$enhance)
我正在使用出色的 nanotime
包来存储我的时间戳,但是当我的 tibble
包含缺失值时我无法使该包工作。
考虑一下:
library(nanotime)
library(tibble)
library(dplyr)
tibble(time = c('2020-01-01 10:10:10.123456',
NA,
'2020-01-01 10:10:10.123456')) %>%
mutate(enhance = nanotime(time,
tz = 'GMT',
format = '%Y-%m-%d %H:%M:%E9S'))
Error in RcppCCTZ::parseDouble(x, fmt = format, tz = tz) :
Parse error on NA
我在这里错过了什么?不幸的是,使用 na.rm = TRUE
不起作用。
谢谢!
问题是 NA
是逻辑类型,您需要让列中的所有值都具有相同类型。我们可以使用 as.integer64
将逻辑 NA
替换为 integer64
NA
.
library(nanotime)
tbl <- tibble::tibble(time = c('2020-01-01 10:10:10.123456',
NA,
'2020-01-01 10:10:10.123456'))
tbl$enhance <- as.integer64(NA)
tbl$enhance[!is.na(tbl$time)] <- nanotime(na.omit(tbl$time), tz = 'GMT',
format = '%Y-%m-%d %H:%M:%E9S')
nanotime(tbl$enhance)