2015-02-10 2 views
0

У меня есть dataframe с данными такого типа столбцов.Как преобразовать временные метки в год?

1906-02-20 
1906-02-21 

Я хочу создать отдельные столбцы с годами, месяцами и днями.

Предназначенный выход:

1906 02 20 
1906 02 21 

Я использовал такие вещи, как strptime и lubridate раньше. Но не в состоянии понять это.

ответ

1
format(as.Date('2014-12-31'),'%Y %m %d') 

(очевидно, вы хотите заменить as.Date('2014-12-31') на ваш вектор даты).

format() преобразует даты в укусы с заданной строкой формата. для отдельного года, месяц и дата ценности, вы хотите:

myData$year <- format(as.Date('2014-12-31'),'%Y') 
#> "2014" 
myData$month <- format(as.Date('2014-12-31'),'%m') 
#> "12" 
myData$day <- format(as.Date('2014-12-31'),'%d') 
#> "31" 

Я часто ссылаюсь на this page, когда мне нужно искать смысл строк формата.

+0

Спасибо. Как я могу получить доступ к отдельным годам, месяцам и дням и хранить их в отдельных столбцах? – maximusdooku

+0

См. Изменения для деталей. – Jthorpe

+0

Большое спасибо – maximusdooku

0

Посмотрите на это:

X <- data.frame() 
X <- rbind(strsplit(x = "1906-02-20", split = "-")[[1]]) 
colnames(X) <- c("year", "month", "day") 
+0

Как это работает с 'data.frame'? –

0

Попробуйте функцию separate в tidyr пакете

library(tidyr) 
separate(df, "V1", into = c("year", "month", "day"), sep = "-") 
# year month day 
# 1 1906 02 20 
# 2 1906 02 21 

данных

df <- read.table(text = " 
1906-02-20 
1906-02-21 
") 
+0

Что здесь V1? – maximusdooku

+0

Это имя столбца по умолчанию, потому что вы не сказали, как вызывается ваш столбец. Я также предоставил данные, которые я использовал в ответе –

+0

Спасибо. Оно работает – maximusdooku

Смежные вопросы