[解決済み] R: Error in sort.list(bx[m$xi]) : 'x' must be atomic for 'sort.list' リストに対して 'sort' を呼び出したことがありますか?データフレームをマージするエラー
2022-02-08 02:23:16
質問
2つのデータフレームを結合したいのですが、どうすればよいですか?データフレームは次のようなものです。
> head(tk1_h)
userId hobbies
1 102802401691 566588ca00016a4e470bb345
2 102802401691 566588ca00016a4e470bb34c
3 102802401691 575949efb3e4c06ffd5384e1
4 102802401691 55b3cd55ef481d737db42084
5 102802401691 566588ca00016a4e470bb350
6 102802401691 566588ca00016a4e470bb34c
そして
> head(tags)
_id type content
1 55a9098ad77b192554c38d50 feed adok-veszek
2 55a909a4d77b192554c38d51 feed keres-kínál
3 55a909dad77b192554c38d52 feed jó-helyek
4 55a909e6d77b192554c38d53 feed oktatás
5 55a909ebd77b192554c38d54 feed program
6 55a909f0d77b192554c38d55 feed sport
ここで、"hobbies" と "_id" は同一なので、2つのデータフレームをマージすることで、どのユーザーがどの趣味を持っているか(<-- dfタグの内容)を確認することができます。以下のようなコードを使いました。
tk1_h2 <- merge.data.frame(tk1_h, tags, by.x = "profile", by.y = "_id")
by.x = "profile" なぜなら、tk1_h dataframeはネストされていて、このような形になっているからです。
> str(tk1_h)
'data.frame': 27716 obs. of 2 variables:
$ userId : num 1.03e+11 1.03e+11 1.03e+11 1.03e+11 1.03e+11 ...
$ profile:'data.frame': 27716 obs. of 1 variable:
..$ hobbies: chr "566588ca00016a4e470bb345" "566588ca00016a4e470bb34c"
"575949efb3e4c06ffd5384e1" "55b3cd55ef481d737db42084" ...
2つのデータフレームをマージすると、このエラーが発生します。
Error in sort.list(bx[m$xi]) : 'x' must be atomic for 'sort.list'
Have you called 'sort' on a list?
この問題について他のスタックオーバーフローの投稿を見ましたが、unlist()は私を助けてはくれませんでした。 どのようにすれば2つのデータフレームを正しくマージするコードを書くことができますか? ありがとうございます。
解決方法は?
私が見る限り、問題はあなたがネストされたデータフレームを持っていることです。ネストされたデータフレームのリストを解除する(ベクトルに変換する)以外の解決策は思いつきません。
tk1_h$profile <- unlist(tk1_h$profile)
関連
-
[解決済み】エラー:'dimnames' [2]の長さが配列の範囲と等しくない [終了しました]
-
[解決済み】lis[[i]]のエラー:1つ未満の要素を選択しようとした場合
-
[解決済み】RでのMLEエラー:'vmmin'の初期値が有限でない
-
[解決済み】Rで立方根と対数変換をする
-
[解決済み】エラー。Rの'break'の数が無効
-
[解決済み】r Error dim(X) must have a positive length?
-
[解決済み】Rはプロットするが、アブラインを描画しない
-
[解決済み】 eval(expr, envir, enclos) でのエラー : オブジェクトが見つかりません。
-
[解決済み] データフレームを結合(マージ)する方法(内側、外側、左側、右側)
-
[解決済み] データフレームのリストを行単位で1つのデータフレームに結合する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー:'dimnames' [2]の長さが配列の範囲と等しくない [終了しました]
-
[解決済み] promise already under evaluation: recursive default argument reference or earlier problems?
-
[解決済み] 変数の型(リスト)が無効です
-
[解決済み】値を置き換えようとすると、"データフレームの添え字の割り当てで欠損値は許可されない"
-
[解決済み】データのマージ - fix.by(by.x, x)のエラー)
-
[解決済み】R Markdown - html出力でフォントサイズとフォントタイプを変更する
-
[解決済み】長いオブジェクトの長さは、短いオブジェクトの長さの倍数ではない?[重複]。
-
[解決済み] テスト
-
[解決済み】 eval(expr, envir, enclos) でのエラー : オブジェクトが見つかりません。
-
[解決済み】seq_alongはうまくいくが、seqが意図しない結果を生む例とは?