[解決済み] Rの行列の添え字の数が正しくない
質問
そこで、次のような名前のデータフレームのリストを持っています。
"D1.txt", "D2.txt"................"D45.txt".
Each of the file contains
2列で、各ファイルには1000行の行があります`。
以下のコードで、リスト内の各データフレームに新しいカラムを追加しようとしているのですが、以下のようなエラーが表示されます。
incorrect number of subscripts on matrix
.
というコードになります。
L <- lapply(seq_along(L), function(i) {
L[[i]][, paste0('DF', i)] <- 1
L[[i]]
})
ここで
L
はデータフレームを含むリストの名前です。
なぜこのようなエラーが発生するのでしょうか?ありがとうございます。:)
編集部:再現性のある例です。
# Create dummy data
L <- replicate(5, expand.grid(1:10, 1:10)[sample(100, 10), ], simplify=FALSE)
# Add a column to each data.frame in L.
# This will indicate presence of the pair when we merge.
L <- lapply(seq_along(L), function(i) {
L[[i]][, paste0('DF', i)] <- 1
L[[i]]
})
解決方法は?
を読むと
"D1.txt", "D2.txt"................"D45.txt"
ファイルは行列に変換され、そのため特定の for ループが失敗します。あなたの例を使ってみましょう。
L <- replicate(5, expand.grid(1:10, 1:10)[sample(100, 10), ], simplify=FALSE)
もし
class(L[[1]])
を出力し、リストの最初の要素をピックアップします。
[1] "data.frame"
を含むリストに対してforループを使用した場合、そのリストは
data.frames
を実行すると、エラーは発生せず、思い通りの結果が得られます。しかし、リストのすべての要素を行列に変換すると、次のようになります。
for(i in seq_along(L)){
L[[i]] <- as.matrix(L[[i]])
}
でチェックし
class(L[[1]])
を出力します。
[1] "matrix"
. もし今 for ループで
L
となり、行列を含むようになります。
> L <- lapply(seq_along(L), function(i) {
+ L[[i]][, paste0('DF', i)] <- 1
+ L[[i]]
+ })
Error in `[<-`(`*tmp*`, , paste0("DF", i), value = 1) :
subscript out of bounds
したがって、ファイルを読み込むときに、強制的に
data.frames
を使うか、ファイルを読み込んで、それを
data.frames
を介して
for(i in seq_along(L)){
L[[i]] <- as.data.frame(L[[i]])
}
で、forループを使用します。
関連
-
[解決済み】model.frame.defaultでのエラー:変数の長さが異なる
-
[解決済み】数学関数への非数値引数
-
[解決済み】RでのMLEエラー:'vmmin'の初期値が有限でない
-
[解決済み] write.tableしようとすると、未実装の型リストが表示される。
-
[解決済み】RでKNN。trainとclassは長さが違う」?
-
[解決済み】ggplotのエラー。関数型オブジェクトのスケールを自動的に選択する方法がわかりません。
-
[解決済み】r Error dim(X) must have a positive length?
-
[解決済み] 因子を日付形式に変換するにはどうすればいいですか?
-
[解決済み】ggplot2でのプロット:「Error: カテゴリ軸のY軸に "Discrete value supplied to continuous scale "と表示される。
-
[解決済み】リスト内の複数のdata.frameを同時にマージする方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】R:関数に有限な'ylim'値が必要
-
[解決済み】'builtin'型のオブジェクトはsubsetableではない【重複
-
[解決済み】model.frame.defaultでのエラー:変数の長さが異なる
-
[解決済み] テスト
-
[解決済み] テスト
-
[解決済み] write.tableしようとすると、未実装の型リストが表示される。
-
[解決済み】エラー。Rの'break'の数が無効
-
[解決済み】 colMeans(x, na.rm = TRUE) のエラー : KNN分類では 'x' は数値でなければならない
-
[解決済み】RでAIC中に行数が変化するのはなぜですか?そうならないようにするにはどうしたらいいですか?
-
[解決済み】Rでmax.printの制限値を増やす方法