У меня есть фрейм данных, в котором переменная содержит даты в разных форматах:
1970-01-09
1974
1970
1987-05-28
1970-06-01
1980
Я хотел бы добавить «01-01» ко всем датам, где у меня есть только год, чтобы иметь одинаковый формат для каждой даты.
Любые предложения приветствуются.
Что-то вроде: ifelse(nchar(x) == 4, paste(x, "01-01", sep = "-"), x)
Используя пакет любое время:
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 ()' требует вектора символов. Идеи о том, как исправить это?
@AshlingMcPhillips использовать as.character (x)
Добро пожаловать в StackOverflow! Пожалуйста, прочтите информацию о как задать хороший вопрос и о том, как дать воспроизводимый пример. Это облегчит другим помощь вам.