Я пытаюсь преобразовать необычный формат даты в стандартную дату.В основном у меня есть набор данных, который содержит период с полугодовой частотой, отформатированный как: 206, обозначающий вторую половину 2006 года, 106, обозначающий первую половину и т. Д.Чтобы переставить его на 2006-06-01 или 2006-01-01, я написал небольшую функцию:
period2date = function(period)
{
check=list()
check=strsplit(as.character(period),split="")
x=as.numeric(check[[1]][1])
p=ifelse( x >= 2,6,1)
x=2
out=paste(x,"0",check[[1]][2],check[[1]][3],"-",p,"-1",sep="")
out=as.Date(out)
return(out)
}
Вы можете смеяться сейчас :).В любом случае, эта функция работает, и здесь возникает проблема.Я хочу применить эту функцию к временному столбцу data.frame.Я попробовал следующее:
as.data.frame(lapply(mydf$period,period2date))
, который вернул результат, наиболее близкий к тому, что я хочу: struct.13665..class .... Date .. 1 2006-06-01
ии так далее. Очевидно, я бы хотел сохранить название своей колонки - или, что еще лучше, просто добавить недавно отформатированную дату в мою оригинальную df.Плюс я попробовал:
sapply(mydf$period,period2date) # with results equal to the line below
unlist(lapply(mydf$period,period2date))
[1] 13300 13514 13665
Все, что я хочу сделать, это изменить формат необычного 206 и т. Д. На 2006-06-01 (который работает) и добавитьстолбец в mydf (который не работает)
спасибо за любые предложения заранее!