将字符类转换为时间对象,忽略 NA R

Convert character class to time object ignoring NAs R

提问人:Loz 提问时间:11/1/2023 更新时间:11/1/2023 访问量:21

问:

虽然有许多与我的问题相关的类似主题,但我找不到一个真正解决它的问题。我有一个时间数据列,有一些缺失值:

t <- data.frame(time=c("NA", "NA", "11:10", "09:30", "NA", "10:50", "12:55", "08:05", "08:15", "NA", "NA"))

我想将列变成时间变量,忽略缺失值?

R 润滑剂

评论

1赞 r2evans 11/1/2023
需要明确的是,基础 R 实际上并没有“时间”类,它有(只有日期部分)和(日期和时间)。一些软件包提供“时间”课程(如图所示,以及 )。如果您只是想将这些字符串(是否或 ,无关紧要)转换为数字(无论它是否像时间一样打印),您可以使用 stackoverflow.com/a/70843341/3358272(还有其他具有类似意图的 Q/A)。DatePOSIXtdata.tablelubridateHH:MMMM:SS

答:

2赞 Onyambu 11/1/2023 #1

使用包中的 asITimedata.table

t$time <- data.table::as.ITime(t$time)
> t
       time
1      <NA>
2      <NA>
3  11:10:00
4  09:30:00
5      <NA>
6  10:50:00
7  12:55:00
8  08:05:00
9  08:15:00
10     <NA>
11     <NA