【问题标题】:Combining multiple columns into one with strings in r用r中的字符串将多列合并为一列
【发布时间】:2016-06-25 07:57:19
【问题描述】:

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

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

提前致谢。

【问题讨论】:

  • 看看paste()

标签: r string merge multiple-columns


【解决方案1】:

使用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=":")))

【讨论】:

    【解决方案2】:

    我们可以使用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"
    

    【讨论】:

    • @OscarTheGrouch 您可以使用$[ 创建一个新列。更新了帖子
    • 我必须等待 5 分钟才能接受您的解决方案,但非常感谢!
    • @OscarTheGrouch 没问题。感谢您的反馈
    猜你喜欢
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2018-10-27
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多