Как отделить время и дату от столбцов - PullRequest
0 голосов
/ 17 января 2020

У меня есть набор данных df. У него есть столбец с датой и временем. Можем ли мы отделить это

df
ColA    ColB
A      2020-01-17T03:30:37-05:00
B      2020-01-17T03:30:38-05:00 
C      2020-01-17T03:30:39-05:00

Ожидаемый результат

df
ColA    ColB                           ColC             ColD             ColE
A      2020-01-17T03:30:37-05:00     2020-01-17     03:30:37            05:00 
B      2020-01-17T03:30:38-05:00     2020-01-17     03:30:38            05:00 
C      2020-01-17T03:30:39-05:00     2020-01-17     03:30:39            05:00 

Ответы [ 2 ]

1 голос
/ 17 января 2020

Предполагая, что столбец ColB представляет собой чистый текст, вы можете попробовать просто взять подстроки:

df$ColC <- substr(df$ColB, 1, 10)
df$ColD <- substr(df$ColB, 12, 19)
df$ColE <- substr(df$ColB, 21, 25)

df
  ColA                      ColB       ColC     ColD  ColE
1    A 2020-01-17T03:30:37-05:00 2020-01-17 03:30:37 05:00
2    B 2020-01-17T03:30:38-05:00 2020-01-17 03:30:38 05:00
3    C 2020-01-17T03:30:39-05:00 2020-01-17 03:30:39 05:00

Данные:

df <- data.frame(ColA=c("A", "B", "C"),
                 ColB=c("2020-01-17T03:30:37-05:00", "2020-01-17T03:30:38-05:00",
                        "2020-01-17T03:30:39-05:00"),
                 stringsAsFactors=FALSE)
0 голосов
/ 17 января 2020

Мы можем использовать tidyr::extract и разбить данные на 3 отдельных столбца, используя соответствующее регулярное выражение.

tidyr::extract(df, ColB, c("ColC", "ColD", "ColE"), regex = "(.*)T(.*)-(.*)", 
               remove = FALSE)

#  ColA                      ColB       ColC     ColD  ColE
#1    A 2020-01-17T03:30:37-05:00 2020-01-17 03:30:37 05:00
#2    B 2020-01-17T03:30:38-05:00 2020-01-17 03:30:38 05:00
#3    C 2020-01-17T03:30:39-05:00 2020-01-17 03:30:39 05:00

данные

df <- structure(list(ColA = structure(1:3, .Label = c("A", "B", "C"
), class = "factor"), ColB = structure(1:3, .Label = c("2020-01-17T03:30:37-05:00", 
"2020-01-17T03:30:38-05:00", "2020-01-17T03:30:39-05:00"), class = "factor")), 
class = "data.frame", row.names = c(NA, -3L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...