行列の行とベクトルを掛け合わせる?
2023-09-15 19:38:53
質問
私は、数値
matrix
があり、25列、23行のベクトルがあります。行列の各行とベクトルを掛け合わせるのに
for
ループを使わずに行列の各行にベクトルを掛けるにはどうしたらよいでしょうか?
結果は 25x23 の行列(入力と同じサイズ)であるべきですが、各行がベクトルによって乗算されています。
Hatmatrix の回答から再現可能な例を追加しました。
matrix <- matrix(rep(1:3,each=5),nrow=3,ncol=5,byrow=TRUE)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 2 2 2 2 2
[3,] 3 3 3 3 3
vector <- 1:5
希望する出力。
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 2 4 6 8 10
[3,] 3 6 9 12 15
どのように解決するのですか?
あなたが探しているのは
sweep()
.
# Create example data and vector
mat <- matrix(rep(1:3,each=5),nrow=3,ncol=5,byrow=TRUE)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 2 2 2 2 2
[3,] 3 3 3 3 3
vec <- 1:5
# Use sweep to apply the vector with the multiply (`*`) function
# across columns (See ?apply for an explanation of MARGIN)
sweep(mat, MARGIN=2, vec, `*`)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 2 4 6 8 10
[3,] 3 6 9 12 15
長年にわたって改良が加えられてきましたが、Rのコア機能の1つです。
関連
-
R plot.new() のエラー : 図形の余白が大きすぎる
-
Rの警告 "条件の長さが1より大きいので、最初の要素しか使えない "に対する解決策
-
Rによる系統的クラスタリング(階層)分析のグラフ形式の完全版
-
[解決済み] Rでtrycatchの書き方
-
[解決済み] data.frameの1つの列の名前を変更する方法は?
-
[解決済み] 先頭と末尾の空白を削除するにはどうしたらよいですか?
-
[解決済み] データフレーム内の列を名前でドロップする方法
-
[解決済み】RでCRANミラーを選択する方法
-
[解決済み】ggplot2で軸のタイトルやラベルの大きさを変更する。
-
[解決済み】エラー:Rで関数が見つかりませんでした。
最新
-
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でファイルを読み込む際に、そのようなファイルまたはディレクトリが見つかりません。
-
R: 環境と変数のスコープ問題
-
Rでエラー:単項演算子への引数が無効
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
データボックス内の行/列の削除/追加を行うR言語
-
[解決済み] HTML、PDF、DOCXで見栄えのするシンプルな手動のRMarkdownテーブル
-
[解決済み] R:自然対数を使った方程式をnlsで使う
-
[解決済み] なぜ `[`] は `subset` よりも優れているのですか?
-
[解決済み】data.frameのグループごとの平均値【重複】について
-
[解決済み】R関数でオプション引数を指定する "正しい "方法