我有一个包含 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
将hour
and中的数字转换min
为POSIXct
对象。但是,POSIXct 对象仅在它还包含年、月和日时才被定义。因此,根据您的需要可以做几件事:
ISOdatetime
. ISOdatetime
返回一个所谓的POSIXct
对象,它是一个表示时间的 R 对象。然后,您只需对、和ISOdatetime
使用固定值。这当然仅适用于您的数据集不跨越多年的情况。year
month
day
Time
,您可以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")