[解決済み] なぜRのifelse文はベクトルを返すことができないのですか?
2022-06-06 01:34:03
質問
Rのifelse文は結構便利だと思うことがあります。 例えば
ifelse(TRUE,1,2)
# [1] 1
ifelse(FALSE,1,2)
# [1] 2
しかし、以下のような挙動にやや困惑しています。
ifelse(TRUE,c(1,2),c(3,4))
# [1] 1
ifelse(FALSE,c(1,2),c(3,4))
# [1] 3
これは私の階級を超えたデザイン選択なのでしょうか?
どのように解決するのですか?
のドキュメントは
ifelse
にはこうあります。
ifelse
と同じ形状の値を返します。 と同じ形状の値を返します。test
で埋め尽くされた のどちらかから選択された要素で埋め尽くされます。yes
またはno
のどちらかです。 のtest
がTRUE
またはFALSE
.
長さ1のテスト値を渡しているので、長さ1の結果が得られています。 より長いテストベクトルを渡せば、より長い結果が得られます。
> ifelse(c(TRUE, FALSE), c(1, 2), c(3, 4))
[1] 1 4
そこで
ifelse
はブール値のベクトルをテストし、同じ長さのベクトルを返すという特定の目的のために意図されています。
yes
と
no
という引数があります。
この関数の名前のせいで、本当は普通の
if () {} else {}
を作りたいのに、これを使うのはよくあることです。
関連
-
二項演算子への非数値引数を報告するR言語エラー
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
[解決済み] data.frameの1つの列の名前を変更する方法は?
-
[解決済み] ggplot2 の棒グラフで棒を並べる
-
[解決済み] Rで文字列から最後のn文字を抽出する
-
[解決済み】data.table vs dplyr:一方がうまくできない、またはうまくできないことを行うことができますか?
-
[解決済み】Rでリストを正しく使用する方法とは?
-
[解決済み】data.frameのグループごとの平均値【重複】について
-
[解決済み】ifelse()でDateオブジェクトがnumericオブジェクトにならないようにする方法
-
[解決済み] ggplot2 で個々のファセットにテキストをアノテートする
最新
-
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言語エラー:図の余白が大きすぎる 解決方法
-
[解決済み] lm.fit(x,y,offset = offset, singular.ok,...) 0 非NAケースでboxcox式で計算するとエラーになる。
-
[解決済み] Rでデータフレームに行を追加する方法は?
-
[解決済み] Rで文字列から文字を削除する
-
[解決済み] 特定のサイズのプロットウィンドウを作成する
-
[解決済み] R:自然対数を使った方程式をnlsで使う
-
[解決済み] R dataframeでNAの値をゼロに置き換えるには?
-
[解決済み] なぜ `[`] は `subset` よりも優れているのですか?
-
[解決済み] 先頭と末尾の空白を削除するにはどうしたらよいですか?