-5

例えば、

dates <- c("25–27 Oct", "25 Oct", "24–25 Oct", "23–24 Oct", "23–24 Oct", "22–23 Oct")

それらを日付ベクトルに変換する最良の方法は何ですか? 望ましい結果は、データフレームでそれらを使用して時系列などをプロットできることです。

解決策は次のいずれかになります

  1. 実用的であり、終了日または
  2. 開始日と終了日を 2 つのベクトルでリストします。
4

2 に答える 2

2

これはどう?日付が間隔ではない場合、同じ値に"25 Oct"設定することもできますが、それは出力をどうするかによって異なります。fromto

do.call(rbind, lapply(dates, function(str){
    if(grepl("–", str)){
        data.frame(from=as.Date(sub("–\\d+", "", str), "%d %b"),
                   to=as.Date(sub("\\d+–", "", str), "%d %b"))
    } else {
        data.frame(from = as.Date(str, "%d %b"), to=NA)
    }
}))

出力

        from         to
1 2013-10-25 2013-10-27
2 2013-10-25       <NA>
3 2013-10-24 2013-10-25
4 2013-10-23 2013-10-24
5 2013-10-23 2013-10-24
6 2013-10-22 2013-10-23
于 2013-10-31T13:46:22.063 に答える
1

あなたは正確に何を保存したいですか?間隔または特定の日付、たとえば間隔の真ん中?

間隔が必要ない場合は、gsub または strptime() を使用して日付を取得してみてください。

http://stat.ethz.ch/R-manual/R-devel/library/base/html/strptime.html

例:

> s="29 Mai"
> strptime(s,format="%d %b")
[1] "2013-05-29"

%b を処理するために、適切なロケールの時刻/日付を設定することを忘れないでください

于 2013-10-31T13:39:07.163 に答える