R での修正方法: 行列のインデックスの数が正しくありません


R で発生する可能性のあるエラーは次のとおりです。

 Error in x[i, ] <- 0: incorrect number of subscripts on matrix

このエラーは、ベクトル内の位置に値を代入しようとしたときに、行列内の行と列の位置に値を代入する場合と同様に、誤ってコンマを含めた場合に発生します。

このチュートリアルでは、このエラーを修正する方法を正確に説明します。

例 1: 単一値のエラーを修正する

R に 5 つの値を持つ次のベクトルがあるとします。

 #definevector
x <- c(4, 6, 7, 7, 15)

ここで、値「22」をベクトルの 3 番目の要素に割り当てようとするとします。

 #attempt to assign the value '22' to element in third position
x[3, ] <- 22

Error in x[3, ] <- 22: incorrect number of subscripts on matrix

新しい値を割り当てようとしたときにカンマが含まれていたため、エラーが発生しました。

代わりに、次のコマンドを削除するだけです。

 assign the value '22' to element in third position
x[3] <- 22

#display updated vector
x

[1] 4 6 22 7 15

例 2: for ループ内のエラーを修正する

このエラーは、「for」ループを使用してベクトル内の複数の値を置換しようとしたときにも発生する可能性があります。

たとえば、次のコードは、ベクトル内の各値をゼロに置き換えようとします。

 #definevector
x <- c(4, 6, 7, 7, 15)

#attempt to replace every value in vector with zero
for (i in 1:length(x)) {
    x[i, ]=0
  }

Error in x[i, ] = 0: incorrect number of subscripts on matrix

ゼロを割り当てようとしたときにカンマが含まれていたため、エラーが発生しました。

代わりに、次のコマンドを削除するだけです。

 #definevector
x <- c(4, 6, 7, 7, 15)

#replace every value in vector with zero
for (i in 1:length(x)) {
    x[i]=0
  }

#view updated vector
x

[1] 0 0 0 0 0

カンマを削除すると、コードはエラーなしで実行されます。

追加リソース

R で修正する方法: 強制によって導入された NA
R で修復する方法: 範囲外のインデックス
R のエラーを修正する方法: 次元数が正しくありません

コメントを追加する

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