我有一个包含 3 列的数据框,包括分钟和小时。我想将这些列(即分钟和列)转换为时间格式。鉴于数据drame:
Score Hour Min
10 10 56
23 17 01
我想得到:
Score Time
10 10:56:00
23 17:01:00
我有一个包含 3 列的数据框,包括分钟和小时。我想将这些列(即分钟和列)转换为时间格式。鉴于数据drame:
Score Hour Min
10 10 56
23 17 01
我想得到:
Score Time
10 10:56:00
23 17:01:00
您可以使用ISOdatetime将hourand中的数字转换min为POSIXct对象。但是,POSIXct 对象仅在它还包含年、月和日时才被定义。因此,根据您的需要可以做几件事:
ISOdatetime. ISOdatetime返回一个所谓的POSIXct对象,它是一个表示时间的 R 对象。然后,您只需对、和ISOdatetime使用固定值。这当然仅适用于您的数据集不跨越多年的情况。yearmonthdayTime,您可以POSIXct使用将输出转换为字符串strftime。通过将format参数设置为"%H:%M:00". 但是,在这种情况下,您也可以使用sprintf创建新的字符列而不转换为POSIXct: sprintf("%s:%s:00", drame$Hour, drame$Min)。您可以使用paste()函数将两列数据合并为一个字符,然后使用 strptime() 转换为时间戳
x<-1:6
##1 2 3 4 5 6
y<-8:13
## 8 9 10 11 12 13
timestamp <- paste(x,":",y,":00",sep="")
timestamp
将导致
#1:8:00 2:9:00 3:10:00 4:11:00 5:12:00 6:13:00
如果您更喜欢将此转换为时间戳对象,请尝试使用
strptime(mergedData,"%H:%M:%S")
## uses current date by default
如果您碰巧在另一列中有日期,请使用 paste() 制作一个字符格式的日期并在下面使用来获取日期时间
##strptime(mergedData,"%d/%m/%Y %H:%M:%S")