[解決済み】ifelse()でDateオブジェクトがnumericオブジェクトにならないようにする方法
2022-04-13 15:57:50
質問
私は、関数
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
は、これはバグではなく機能であることを示していますが、私が見つけた驚くべき動作の説明を見つけるのに苦労しています。
解決方法は?
を使用することができます。
data.table::fifelse
(
data.table >= 1.12.3
) または
dplyr::if_else
.
data.table::fifelse
<ブロッククオート
とは異なり
ifelse
,
fifelse
は、入力の型とクラスを保持します。
library(data.table)
dates <- fifelse(dates == '2011-01-01', dates - 1, dates)
str(dates)
# Date[1:5], format: "2010-12-31" "2011-01-02" "2011-01-03" "2011-01-04" "2011-01-05"
dplyr::if_else
から
dplyr 0.5.0
リリースノート
:
[
if_else
は、より厳格なセマンティクスを持っています。ifelse()
を使用します。true
とfalse
の引数は同じ型でなければなりません。これにより、戻り値の型に驚かなくなり、以下のようなS3ベクトルが維持されます。 日付 となります。
library(dplyr)
dates <- if_else(dates == '2011-01-01', dates - 1, dates)
str(dates)
# Date[1:5], format: "2010-12-31" "2011-01-02" "2011-01-03" "2011-01-04" "2011-01-05"
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
R言語です。「接続を開くことができません」解決策
-
[解決策】 plot.new() のエラー:図の余白が大きすぎる。
-
R言語における共通関数
-
[解決済み] "エラーです。Rでテーマの書式を保存する際に「Don't know how to add RHS to the theme object」(テーマオブジェクトにRHSを追加する方法がわかりません)と表示されます。
-
[解決済み] R dataframeでNAの値をゼロに置き換えるには?
-
[解決済み] 情報を損なわずに因数を整数値に変換するには?
-
[解決済み] パッケージ 'xxx' は利用できません (for R version x.y.z) 」という警告にどのように対処したらよいですか?
-
[解決済み] 非常に大きなテーブルをデータフレームとして高速に読み込む
-
[解決済み] Rでロードされているパッケージのバージョンを調べるには?
-
[解決済み] FUN内のlapplyインデックス名へのアクセス