2016-03-10 4 views
1

У меня есть набор данных, который имеет дату и время, разделенные на несколько столбцов, я искал их все в один столбец для построения графика. любая помощь будет высоко оценена, до сих пор мои данные выглядит следующим образом ...Объединение нескольких столбцов в один со строками в 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 

заранее спасибо.

+0

Посмотрите на 'paste()' –

ответ

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

, который работал очень хорошо, спасибо большое! – OscarTheGrouch

+0

@OscarTheGrouch Вы можете использовать '$' или '[' для создания нового столбца. Обновлено сообщение – akrun

+1

Мне нужно подождать 5 минут, прежде чем принимать решение, но спасибо тонну! – OscarTheGrouch

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=":"))) 
Смежные вопросы