Я пытаюсь преобразовать необычный формат даты в стандартную дату. В основном у меня есть набор данных, который содержит период с полугодичной частотой, отформатированный как: 206, обозначающий вторую половину 2006 года, 106 - первую половину и т. Д. Для того, чтобы изменить порядок его 2006-06-01 соответственно 2006-01-01, я написал небольшую функцию:Как заменить столбец в R? странное поведение с датами
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))
, который вернул результат ближе к тому, что я хочу: structure.13665..class .... Дата .. 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 (который не работает)
thx за любые предложения заранее!