在r中将多个列组合成一个字符串

时间:2016-03-10 12:53:04

标签: r string merge multiple-columns

我有一个数据集,其日期和时间分为多个列,我希望将它们全部放入一列进行绘制。任何帮助将不胜感激,到目前为止,我的数据看起来像这样......

YY       MM        DD      HH       MM
2012     03        04      03       50
2012     03        04      03       40
2012     03        04      03       30
2012     03        04      03       20
2012     03        04      03       10

并希望它看起来像这样......

DateTime
2012-03-04 03:50
2012-03-04 03:40
2012-03-04 03:30
2012-03-04 03:20
2012-03-04 03:10

提前感谢。

2 个答案:

答案 0 :(得分:4)

我们可以使用sprintf

df1$DateTime <-do.call(sprintf, c(df1, 
      list(fmt = '%04d-%02d-%02d %02d:%02d')))
df1$datetime
#[1] "2012-03-04 03:50" "2012-03-04 03:40" "2012-03-04 03:30" "2012-03-04 03:20" "2012-03-04 03:10"

答案 1 :(得分:0)

使用paste的另一种方法。

text1 <- "YY       MM        DD      HH       MM
2012     03        04      03       50
2012     03        04      03       40
2012     03        04      03       30
2012     03        04      03       20
2012     03        04      03       10"

d1 <- read.table(text=text1, head=T, as.is=T, colClasses = rep("character", 5))

library(dplyr)

d1 %>% transmute(DateTime=paste(paste(YY, MM, DD, sep="-"),
                 paste(HH, MM.1, sep=":")))