使用 r 中的字符串将多列合并为一列
Combining multiple columns into one with strings in r
我有一个数据集,其中日期和时间分为多列,我希望将它们全部放入一列中进行绘制。任何帮助将不胜感激,到目前为止我的数据看起来像这样...
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
提前致谢。
我们可以使用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"
另一种方法使用 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=":")))
我有一个数据集,其中日期和时间分为多列,我希望将它们全部放入一列中进行绘制。任何帮助将不胜感激,到目前为止我的数据看起来像这样...
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
提前致谢。
我们可以使用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"
另一种方法使用 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=":")))