R での修正方法: 引数の長さがゼロです
R の使用時に発生する可能性のあるエラー メッセージは次のとおりです。
Error in if (x < 10) {: argument is of length zero
このエラーは通常、R の if ステートメントで論理比較を実行しようとしたが、比較に使用している変数の長さが 0 である場合に発生します。
長さゼロの変数の 2 つの例は、 numeric()またはCharacter(0)です。
次の例は、このエラーを実際に解決する方法を示しています。
エラーを再現する方法
R に長さ 0 の次の数値変数を作成するとします。
#create numeric variable with length of zero
x <- numeric()
ここで、この変数をif ステートメントで使用しようとするとします。
#if x is less than 10, print x to console
if(x < 10 ) {
x
}
Error in if (x < 10) {: argument is of length zero
定義した変数の長さがゼロであるため、エラーが発生します。
単純に実数値を持つ数値変数を作成した場合、if ステートメントを使用するときにこのエラーが発生することはありません。
#create numeric variable
y <- 5
#if y is less than 10, print y to console
if(y < 10 ) {
y
}
[1] 5
エラーを回避する方法
引数の長さゼロのエラーを回避するには、次のロジックを使用するisTRUE関数を含める必要があります。
is. logical (x) && length(x) == 1 && !is. na (x) && x
この関数を if ステートメントで使用すると、変数と値を比較するときにエラーは発生しません。
if(isTRUE(x) && x < 10 ) {
x
}
isTRUE(x)関数はFALSEと評価されるため、エラーを受け取るのではなく、単純に出力を受け取りません。つまり、 x の値は出力されません。
追加リソース
次のチュートリアルでは、R の他の一般的なエラーを修正する方法について説明します。
R での修正方法: 引数に異なる行数が含まれる
R での修正方法: 未使用の引数を選択する際のエラー
R での修復方法: 置換の長さはゼロです