Добавить месяцы и дни к году

У меня есть фрейм данных, в котором переменная содержит даты в разных форматах:

1970-01-09
1974
1970
1987-05-28
1970-06-01
1980

Я хотел бы добавить «01-01» ко всем датам, где у меня есть только год, чтобы иметь одинаковый формат для каждой даты.

Любые предложения приветствуются.

Добро пожаловать в StackOverflow! Пожалуйста, прочтите информацию о как задать хороший вопрос и о том, как дать воспроизводимый пример. Это облегчит другим помощь вам.

Sotos 31.10.2018 11:29

Что-то вроде: ifelse(nchar(x) == 4, paste(x, "01-01", sep = "-"), x)

zx8754 31.10.2018 11:32
0
2
33
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используя пакет любое время:

library(anytime)

x <- c("1970-01-09","1974","1970","1987-05-28","1970-06-01","1980")
anydate(x)
# [1] "1970-01-09" "1974-01-01" "1970-01-01" "1987-05-28" "1970-06-01" "1980-01-01"

Или используйте вставить:

ifelse(nchar(x) == 4, paste(x, "01-01", sep = "-"), x)

Спасибо. Я пытаюсь использовать вариант вставки. Однако при запуске кода у меня возникает ошибка (моя переменная x является фактором):> ifelse (nchar (x) == 4, paste (x, "01-01", sep = "-"), x) Ошибка in nchar (x): 'nchar ()' требует вектора символов. Идеи о том, как исправить это?

Ashling Mc Phillips 31.10.2018 15:44

@AshlingMcPhillips использовать as.character (x)

zx8754 31.10.2018 18:12

Другие вопросы по теме