6
ifelse()がDateオブジェクトを数値オブジェクトに変換しないようにする方法
関数ifelse()を使用して日付ベクトルを操作しています。結果はクラスDateであると予想しましたが、numeric代わりにベクトルを取得することに驚いていました。次に例を示します。 dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05')) dates <- ifelse(dates == '2011-01-01', dates - 1, dates) str(dates) ベクトル全体で操作を実行するとDateオブジェクトが返されるため、これは特に驚くべきことです。 dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04','2011-01-05')) dates <- dates - 1 str(dates) Dateベクターを操作するために他の関数を使用する必要がありますか?もしそうなら、どのような機能ですか?そうでない場合ifelse、入力と同じタイプのベクトルを強制的に返すにはどうすればよいですか? のヘルプページifelseは、これがバグではなく機能であることを示していますが、私がまだ驚くべき動作であることが判明したものの説明を見つけるのに苦労しています。
161
r
datetime
if-statement