2013-06-11 44 views
0

我想將列2:4中的數字數據轉換爲日期。我可以一欄一列,但不能一勞永逸。我想它與名稱列在那裏有關係,但我試圖告訴R只是使用我想要的列。我究竟做錯了什麼?提前致謝!將指定的列轉換爲R中的日期

names<-c("tom", "dick", "harry", "mary", "susie") 
date_1<-c(15127, 15034, 15034, 15141, 15013) 
date_2<-c(15155, 15062, 15064, NA, 15041) 
date_3<-c(15185, 15091, 15092, NA, 15069) 
df<-data.frame(names, date_1, date_2, date_3) 
df 




as.Date(df$date_1, origin="1970-01-01") 
[1] "2011-06-02" "2011-03-01" "2011-03-01" "2011-06-16" "2011-02-08" 


as.Date(df[,2:4], origin="1970-01-01") 
Error in as.Date.default(df[, 2:4], origin = "1970-01-01") : 
    do not know how to convert 'df[, 2:4]' to class 「Date」 

回答

1

數據框是列表。使用lapply

df[,-1] <- lapply(df[,-1],as.Date,origin = "1970-01-01") 
> df 
    names  date_1  date_2  date_3 
1 tom 2011-06-02 2011-06-30 2011-07-30 
2 dick 2011-03-01 2011-03-29 2011-04-27 
3 harry 2011-03-01 2011-03-31 2011-04-28 
4 mary 2011-06-16  <NA>  <NA> 
5 susie 2011-02-08 2011-03-08 2011-04-05 
+0

嗨喬蘭!感謝您的幫助。我拷貝你的代碼到同一個df上,並得到這個錯誤get(as.character(FUN),mode =「function」,envir = envir): mode'function'的object'2010-02-01'不是找到。我檢查了錯別字,看起來不錯。 – user2363642

+0

等待!!繼續,它在Rstudio中工作!但是R怎麼沒有呢?我有plyr加載? – user2363642

+0

@ user2363642不應該有任何區別。 (我在OS X R GUI和RStudio中測試過它。) – joran