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 での修復方法: 置換の長さはゼロです

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です