[解決済み】データフレームで関数を適用する場合、dim(X)は正の長さでなければならない
2022-01-10 16:10:43
質問
データフレームのカラムに、以下のように関数を適用したい。
best_recom <- function(x,n=1) {
y <- result2[x,order(-result2[x,])[n]]
inds = which(result2[x,] == y, arr.ind=TRUE)
recom <- names(inds[1])
return(recom)
}
こんな感じで。
apply(last_visit[,2], 1, best_recom)
しかし、私はエラーが表示されます。
dim(X) must have a positive length
以下のコードを試すと
apply(as.matrix(last_visit)[,2],1,recomenda_n_melhor)
同じエラーが発生します。使用するデータフレームが
result2 - 類似性マトリックス - これは単なるサンプルです。
X1.0 X1.1 X2.1 X3.1
X1.0 0.0000000 0.5000000 0.3872983 0.3162278
X1.1 0.5000000 0.0000000 0.2581989 0.0000000
X2.1 0.3872983 0.2581989 0.0000000 0.0000000
X3.1 0.3162278 0.0000000 0.0000000 0.0000000
最終訪問日
customer cat
1 1 X5.1
2 2 X6.1
3 3 X1.1
4 4 X2.1
解決方法は?
Rが強制的に
last_visit[,2]
を無次元ベクトルに変換するのに対し
apply
は、オブジェクトが何らかの次元を持っていることを期待します。この強制を防ぐには
drop=F
をコマンドに追加してください。
apply(last_visit[,2,drop=F], 1, best_recom)
もう一つの方法は、単に
lapply
または
sapply
をベクトル上に配置します。
lapply(last_visit[,2], best_recom)
関連
-
linux シェル学習ノート 5日目
-
linux シェル学習ノート 2日目
-
[解決済み】警告メッセージ。In `...` : invalid factor level, NA generated 警告メッセージ:...`は無効な因子レベルです。
-
[解決済み] 式は変更可能なlvalueでなければならない
-
[解決済み】主成分分析:colMeans(x, na.rm = TRUE)のエラー:'x'は数値でなければなりません。
-
[解決済み】アプリケーション起動メソッドで例外が発生 java.lang.reflect.InvocationTargetException
-
[解決済み】Looper.prepare()を呼び出していないスレッド内でハンドラを作成できない。)
-
[解決済み】git pullしようとするとエラー: .git/FETCH_HEAD を開けない: パーミッションが拒否される
-
[解決済み】data.table vs dplyr:一方がうまくできない、またはうまくできないことを行うことができますか?
-
[解決済み】Rで2つのヒストグラムを一緒にプロットする方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Swift言語とAppleScriptの違い、AppleScriptの開発状況について教えてください。
-
合理的オブジェクトスクリプトコマンド
-
LinuxでRの新バージョンを直接コピーする方法
-
[解決済み】 mean() 警告:引数が数値または論理でない:NAを返す
-
[解決済み】以下の追跡されていないワーキングツリーファイルは、マージによって上書きされますが、私は気にしません。
-
[解決済み】recyclerview アダプタが添付されていないため、レイアウトをスキップしています。
-
[解決済み】変数が初期化されていないかもしれないエラー
-
[解決済み】git pullの取り消し、レポを古い状態に戻す方法
-
[解決済み] ポインタからキャストを使わずに整数を返す [-Wint-conversion] 戻り値の候補を作る
-
[解決済み】行列式で「数値/複雑な行列/ベクトルの引数が必要です」というエラーが発生?