> class(report_df$LASTACTIVITYDATE)
[1] "POSIXct" "POSIXt"
由于存在POSIXct和POSIXt的混合数据类型,因此我无法正确处理数据。Lubridate出现问题。
当我尝试以下任何一种方法时,它都没有帮助:
library(lubridate)
report_df$LASTACTIVITYDATE <- as.POSIXct(report_df$LASTACTIVITYDATE)
report_df <- report_df %>% mutate(LASTACTIVITYDATE = mdy_hms(LASTACTIVITYDATE))
有时它只是将整个列更改为NA。
其他人有过这种经历吗?
1条答案
按热度按时间ilmyapht1#
您的数据是**POSIX * 和 * POSIX *。POSIXt是POSIXct和POSIXlt的一种父类。
来自文档:
“POSIXct”更便于包含在 Dataframe 中,而“POSIXlt”更接近人类可读的形式。一个虚类[(见注1)]“POSIX”继承自这两个类:它用于允许诸如减法的操作来混合两个类。(source)
至于为什么你的尝试似乎没有工作:
as.POSIXct()
不会做任何事情,因为数据已经是POSIX格式mdy_hms()
解析字符串,而不是POSIX对象。任何它不能解析的都将返回NA。备注:
1.“类的存在并没有实际的对象,虚拟类实际上是一个非常重要的编程工具。它们用于将希望共享某些编程行为的普通类组合在一起,而不必限制如何实现该行为。如果你想包含插槽,虚类定义可以(在不完全定义对象的情况下提供一些公共行为-参见traceable-class的示例)。