1) отдельно с использованием df
, воспроизводимым в примечании, в конце использования separate
:
library(dplyr)
library(tidyr)
df %>%
separate(Col, c("Col1", "Col2"), sep = "\\.", extra = "merge", remove = FALSE)
, дающим:
Col Col1 Col2
1 2017-09-19.I.L_WAY 2017-09-19 I.L_WAY
2 2017-09-19.I.L_TEMP 2017-09-19 I.L_TEMP
2) as.Date/sub Это создает Date
столбец класса Col1
и столбец класса символов Col2
без использования пакетов.
transform(df, Col1 = as.Date(Col), Col2 = sub("[^.]+\\.", "", Col),
stringsAsFactors = FALSE)
, что дает:
Col Col1 Col2
1 2017-09-19.I.L_WAY 2017-09-19 I.L_WAY
2 2017-09-19.I.L_TEMP 2017-09-19 I.L_TEMP
3) read.table Это еще одна базовая альтернатива R. Замените первую точку точкой с запятой, прочитайте ее df$Col
, предполагая, что поля разделены точкой с запятой, и cbind, что с df
:
cbind(df, read.table(text = sub("\\.", ";", df$Col), sep = ";", as.is = TRUE,
col.names = c("Col1", "Col2")))
, давая:
Col Col1 Col2
1 2017-09-19.I.L_WAY 2017-09-19 I.L_WAY
2 2017-09-19.I.L_TEMP 2017-09-19 I.L_TEMP
Примечание
Lines <- "Col
2017-09-19.I.L_WAY
2017-09-19.I.L_TEMP"
df <- read.table(text = Lines, header = TRUE, as.is = TRUE)