我想將不常見的日期格式轉換爲標準日期。基本上我有一個數據集,其中包含一個半年一次的頻率格式,如下所示: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任何建議提前!