元のExcelファイルの日付は、「Jan-01」の形式で月次データを表しています。もちろん、最初に手動でExcelでより便利なものに変換してから、それをRに入力することもできます。
そのような日付をRの日付クラスに変換するにはどうすればよいですか?
クラスが必要な場合はdate
、as.Dateを使用します。
x <- "Jan-01"
as.Date(paste("01-", x, sep = ""), format = "%d-%b-%y")
POSIXct
クラスが必要な場合は、以下の使用を検討してlubridate
ください。
library(lubridate)
x <- "Jan-01"
dmy(paste("01-", x , sep =""))
あなたがただ頼りたいならbase
:
x <- "Jan-01"
as.POSIXct(paste("01-", x, sep = ""), format = "%d-%b-%y")
編集:
最も簡単な方法は、動物園でyearmonクラスを使用することです。
require(zoo)
as.yearmon(x, "%b-%y")
#[1] "Jan 2001"
やや長い方法:
x="Jan-01"
xs<-strsplit(x, "-")
xd <- as.Date( xs[[1]][2], paste( xs[[1]][1], "01", sep="-"), format="%y-%b-%d")
xd
#[1] "2001-01-01"
sapply
一連の日付を処理する場合は、2番目の方法を選択して、年のベクトルと月のベクトルを作成する場合に使用する必要があります。
月の最初の日を強制的に指定すると、次のように日付を変換できます。
datevar <- c("Jan-01","Feb-01","Mar-12")
as.Date(paste("01",datevar,sep="-"),"%d-%b-%y")
これは基本的にDWinが以下に示すものと同じ答えであり、年ではなく日を手動で指定するだけであることに注意してください。