我有两列表示时间,一列表示小时,一列表示分钟。数据框看起来类似于:
hr mn
0 0
0 30
1 0
1 30
2 0
2 30
我需要的是将这些粘贴在一起以获得一列hrmn
的方法:
hrmn
0
30
100
130
200
230
我认为这可以通过paste0
以某种方式完成,但这让我:
hrmn <- as.numeric(paste0(hr,mn))
hrmn
0
30
10
130
20
230
有没有办法将这两列粘贴在一起并获得我需要的格式?
答案 0 :(得分:1)
据我了解,您希望获得一小时/分钟格式。你可以这样做:
mydf$hrmn <- paste0(sprintf("%02.0f", mydf$hr),":",sprintf("%02.0f", mydf$mn))
给出:
> mydf
hr mn hrmn
1 0 0 00:00
2 0 30 00:30
3 1 0 01:00
4 1 30 01:30
5 2 0 02:00
6 2 30 02:30
答案 1 :(得分:0)
我们也可以在strptime
列之后使用paste
,更改format
并转换为numeric
。
as.numeric(format(strptime(do.call(paste, df1), format='%H %M'), '%H%M'))
#[1] 0 30 100 130 200 230