Я не могу правильно отформатировать желаемый вывод - PullRequest
0 голосов
/ 15 июня 2019

У меня возникла проблема со следующим: я хочу изменить формат даты с "% d% / m /% y" на "% y% / m /% d", а затем создать новый столбец только с ГОД (извлечь год из даты столбца).

data$date_of_purchase = as.Date(data$date_of_purchase, "%y%/m/%d")
data$year_of_purchase = as.numeric(format(data$date_of_purchase, "%Y"))

в качестве примера: 01.08.2009 изменится на 2008-01-20, но это должно быть 2019/01/08.

# Load text file into local variable called 'data'
data = read.delim(file = 'purchases.txt', header = FALSE, sep = '\t', dec = '.')

# Add headers and interpret the last column as a date, extract year of purchase
colnames(data) = c('customer_id', 'purchase_amount', 'date_of_purchase')

#Delete columns with Blank Values
data <- with(data, data[!(customer_id == "" | is.na(customer_id)), ])

data$date_of_purchase = as.Date(data$date_of_purchase, "%y/%m/%d")
data$year_of_purchase = as.numeric(format(data$date_of_purchase, "%Y"))

Нет сообщения об ошибке, но новая дата не является желаемой.

Ответы [ 2 ]

0 голосов
/ 16 июня 2019

X $ newdate <- strptime (as.character (X $ date), "% d /% m /% Y") </p>

формат (X $ newdate, "% Y-% m-%д ")

0 голосов
/ 15 июня 2019

Это то, что вы ищете?

library("lubridate") ## year comes from this package

Input
data <- fread("customer_id  purchase_amount date_of_purchase
0000@000.com    $22     08/01/2019
0000christie@gmail.com  $174    02/11/2017
0000christie@gmail.com  $61     03/01/2018
000@hotmail.com $33     16/12/2017")

Your code
data$date_of_purchase = as.Date(data$date_of_purchase,"%d/%m/%Y")
data$year_of_purchase <- year(data$date_of_purchase)

OutPut:
              customer_id purchase_amount date_of_purchase year_of_purchase
1:           0000@000.com             $22       2019-01-08             2019
2: 0000christie@gmail.com            $174       2017-11-02             2017
3: 0000christie@gmail.com             $61       2018-01-03             2018
4:        000@hotmail.com             $33       2017-12-16             2017
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...