私は配列を持っています:
a <- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
次の関数を実装したい:
w<-function(a){
if (a>0){
a/sum(a)
}
else 1
}
この関数は、0より大きい値があるかどうかを確認しa
、ある場合は、各要素を合計で除算します。
それ以外の場合は、1を記録する必要があります。
次の警告メッセージが表示されます。
Warning message:
In if (a > 0) { :
the condition has length > 1 and only the first element will be used
どうすれば機能を修正できますか?