在转换仅包含“小时:分钟”且以前为字符类型的数据框字段后,如何保留 H:M:S (并丢弃自动插入的日期)?
这是我的代码
mdp$time <- strptime(mdp$time,'%H:%M')
mdp
是一个 data.frame,字段 time
包含格式为 HH:MM 的小时
若要将字符格式转换为 POSIXlt 格式后仅保留时间部分(H:M:S)并丢弃日期部分,可以使用 format 函数并指定所需的格式模式。具体方法如下:
mdp$time <- format(strptime(mdp$time, '%H:%M'), format = '%H:%M:%S')
说明:
strptime(mdp$time, '%H:%M') 将 mdp 数据框的时间列中的字符串转换为 POSIXlt 格式,使用格式字符串 %H:%M 指定输入以小时为单位,分钟格式。
然后使用 format(...) 将 POSIXlt 对象转换回字符串,但这次使用格式字符串 %H:%M:%S。此格式字符串指定输出应采用“小时:分钟:秒”格式。由于原始数据中没有秒,这将导致 :00 被添加为秒组件。因此,执行这行代码后,mdp 数据框中的时间列将包含格式为“HH:MM:00”的时间值。
此外,如果您只想使用“HH:MM”而不需要秒部分,则可以简单地使用 %H:%M 作为格式字符串:
mdp$time <- format(strptime(mdp$time, '%H:%M'), format = '%H:%M')
这将在转换后的时间栏中保留原始的“HH:MM”格式。