0

列 2:4 の数値データを日付に変換したいと考えています。この列ごとに行うことはできますが、すべてを一度に行うことはできません。名前列がそこにあることに関係があると思いますが、必要な列を使用するように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”
4

1 に答える 1

2

データ フレームはリストです。使用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
于 2013-06-11T19:30:47.323 に答える