Rの警告 "条件の長さが1より大きいので、最初の要素しか使えない "に対する解決策
2022-02-19 19:08:48
アラート: "条件の長さが1より大きいので、その最初の要素のみ使用できます"。
理由: ベクトルとスカラーに関する問題
例
> x<-seq(-2,2); # x is a vector of length 5
> x
[1] -2 -1 0 1 2
> if(x>0) 1 else 0
[1] 0
Warning message: If the length of x >1, only the first element of x is used, and the first element of x is -2, so the output is 0
In if (x > 0) 1 else 0 :
the condition has length > 1 and only the first element will be used
というのが正しいはずです。
> y <- numeric(length(x)); # first initialize the output to be the same length as the input, i.e. one output corresponds to one input
> y
[1] 0 0 0 0 0 0 0; # output y initialized to a 0 vector of length 5
> y[x>0]<-1; # Each subscript [] value is conditioned, and a different value is assigned when the condition is T/F
> y[x<=0]<-0
> y # The final result implements the calculation for each element of the vector
[1] 0 0 0 0 1 1
実はループを使う必要がなく、lapplyやmutateなどを使わずにデータフレームの計算ができる、わかりやすいベクトル化コーディング関数なんです。
という関数を作り上げました。
Tag_5_Stars(clf2_traffice[ ,3],clf2_traffice[ ,8:12]);
Tag_5_Stars=function(x,a){。
<未定義
Stars<-numeric(length(x))。
a1<-numeric(length(a));
a1<-a;
Stars[is.na(x)]<-NA ; # NAを返す
Stars[ x<=a1[1]]<-0 ; # 星0個を返す
Stars[ (x>a1[1]) & (x<=a1[2]) ]<-1 ; # 星を1つ返す
Stars[ (x>a1[2]) & (x<=a1[3]) ]<-2 ; # 星を2つ返す
Stars[ (x>a1[3]) & (x<=a1[4]) ]<-3 ; # 星を3つ返す
Stars[ (x>a1[4]) & (x<=a1[5]) ]<-4 ; # 4つの星を返す
Stars[ x>a1[5]]<-5 ; # 星を5つ返す
星
}
関連
-
R: エラー: $ 演算子は原子ベクトルに対して無効です。
-
R: 環境と変数のスコープ問題
-
R - よくあるエラーとその原因 - 注意事項
-
R LanguageError in hist.default() : 'x' は数値でなければなりません.
-
R plot.new() のエラー : 図形の余白が大きすぎる
-
[解決策】 plot.new() のエラー:図の余白が大きすぎる。
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
R read.table Error:埋め込まれたヌルが含まれているようです。
-
R - ユークリッド距離の計算を簡単にする方法
-
データボックス内の行/列の削除/追加を行うR言語
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
RStudio の "plot.new() : figure margins too large" 問題を解決する。
-
R 描画エラー plot.new() : 図形の余白が大きすぎる
-
二項演算子への非数値引数を報告するR言語エラー
-
R言語です。「接続を開くことができません」解決策
-
R言語のエラーメッセージと関連する解決策
-
8.2 カマグラ(No.31〜No.40)
-
R言語エラー:図の余白が大きすぎる 解決方法
-
ggplot2 からグリッドと背景色を削除する。
-
Rでエラー:単項演算子への引数が無効
-
[R] is.data.frame(x) のエラー : (リスト) オブジェクトを 'double' 型に強制できない。