【发布时间】:2016-03-14 20:27:58
【问题描述】:
所以我有一个很大的 df,其中有一个名为“session”的列,格式为 HH:MM:SS(例如 0:35:24 35 分 24 秒)。
我想根据“会话”列中 > 2 分钟或
我尝试先将列格式转换为日期:
df$session <- as.Date(df$session, "%h/%m/%s")
然后我打算使用子集()来创建我的条件子集,但上面的代码生成了一列 NA。
subset.morethan2min <-subset(df, CONDITION)
哪里 CONDITION 是 df$session >2 分钟?
我应该如何操作“会话”列,以便能够按照描述的条件进行子集化?
很抱歉,对 R 非常陌生,因此欢迎提出任何建议。
谢谢!
更新:
我将会话列转换为 POSIXct,然后使用 lubridate 包中的函数 minute() 来获取小时和分钟分量的数值。不是一个接近的解决方案,但似乎现在可以满足我的需求。尽管如此,仍然会欢迎一个更整洁的解决方案。
df$sessionPOSIX <- as.POSIXct(strptime(df$session, "%H:%M:%S"))
df$minute <- minute(df$sessionPOSIX)
subset.morethan2min <- subset(df, minute > 2)
【问题讨论】:
-
真的是“约会”吗?似乎
as.Date可能不是您想要的功能。请参阅?DateTimeClasses,因为我没有完全了解 R 中的日期和时间