在R中以适当的格式粘贴两列

时间:2015-12-19 06:14:00

标签: r dataframe paste

我有两列表示时间,一列表示小时,一列表示分钟。数据框看起来类似于:

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

有没有办法将这两列粘贴在一起并获得我需要的格式?

2 个答案:

答案 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