私はYelpデータセットで遊んでいて、そのカテゴリに応じてビジネスセットをフィルタリングしたいと考えています。ネストされたデータフレーム内のフィルタ
私は、次のデータフレームに、結果
yelp_business = stream_in(file("yelp_academic_dataset_business.json"))
とRへのJSONファイルをインポート:私は今、ビジネスのカテゴリに応じてすべての行をフィルタリングし、したいしたい
'data.frame': 77445 obs. of 15 variables:
$ business_id : chr "5UmKMjUEUNdYWqANhGckJw" "UsFtqoBl7naz8AVUBZMjQQ" "3eu6MEFlq2Dg7bQh8QbdOg" "cE27W9VPgO88Qxe4ol6y_g" ...
$ full_address : chr "4734 Lebanon Church Rd\nDravosburg, PA 15034" "202 McClure St\nDravosburg, PA 15034" "1 Ravine St\nDravosburg, PA 15034" "1530 Hamilton Rd\nBethel Park, PA 15234" ...
$ hours :'data.frame': 77445 obs. of 7 variables:
..$ Friday :'data.frame': 77445 obs. of 2 variables:
.. ..$ close: chr "21:00" NA NA NA ...
.. ..$ open : chr "11:00" NA NA NA ...
..$ Tuesday :'data.frame': 77445 obs. of 2 variables:
.. ..$ close: chr "21:00" NA NA NA ...
.. ..$ open : chr "11:00" NA NA NA ...
..$ Thursday :'data.frame': 77445 obs. of 2 variables:
.. ..$ close: chr "21:00" NA NA NA ...
.. ..$ open : chr "11:00" NA NA NA ...
..$ Wednesday:'data.frame': 77445 obs. of 2 variables:
.. ..$ close: chr "21:00" NA NA NA ...
.. ..$ open : chr "11:00" NA NA NA ...
..$ Monday :'data.frame': 77445 obs. of 2 variables:
.. ..$ close: chr "21:00" NA NA NA ...
.. ..$ open : chr "11:00" NA NA NA ...
..$ Sunday :'data.frame': 77445 obs. of 2 variables:
.. ..$ close: chr NA NA NA NA ...
.. ..$ open : chr NA NA NA NA ...
..$ Saturday :'data.frame': 77445 obs. of 2 variables:
.. ..$ close: chr NA NA NA NA ...
.. ..$ open : chr NA NA NA NA ...
$ open : logi TRUE TRUE TRUE FALSE TRUE TRUE ...
$ categories :List of 77445
..$ : chr "Fast Food" "Restaurants"
..$ : chr "Nightlife"
..$ : chr "Auto Repair" "Automotive"
..$ : chr "Active Life" "Mini Golf" "Golf"
..$ : chr "Shopping" "Home Services" "Internet Service Providers" "Mobile Phones" ...
..$ : chr "Bars" "American (New)" "Nightlife" "Lounges" ...
..$ : chr "Active Life" "Trainers" "Fitness & Instruction"
..$ : chr "Bars" "American (Traditional)" "Nightlife" "Restaurants"
..$ : chr "Auto Repair" "Automotive" "Tires"
..$ : chr "Active Life" "Mini Golf"
..$ : chr "Home Services" "Contractors"
..$ : chr "Veterinarians" "Pets"
..$ : chr "Libraries" "Public Services & Government"
..$ : chr "Automotive" "Auto Parts & Supplies"
をカテゴリーリストに食べ物を持つすべてのカテゴリーを含める。しかし
、私はちょうどそのようにそれをしようとした場合:
input ="food"
engage = filter(yelp_business, grepl(input, categories))
私は次のエラーコード受け取り:
Error: data_frames can only contain 1d atomic vectors and lists
を私が最初にその理由であることを入れ子構造を疑いました。しかし、tidyjsonを使うことはカテゴリがリストであり、メインのデータフレーム内のデータフレームではないので、どちらも役に立ちません。
これを解決する方法はありますか?私はちょうどすべての食品レストランのビジネスidsのリストを必要とし、Yelpからレビューjsonファイルをフィルタリングして、書面によるレビューを抽出する必要があります。
本当にありがとうございます!どうもありがとう!
yelp_business $ categories < - unlist(yelp_business $ categories) ' –
ありがとうPierre、私もこれを試しましたが、カテゴリの各行に異なる数のカテゴリタグがあるという問題があります。 ($ tmp * '、" categories "、value = c(" $ tmp * "、" $ tmp * ")のエラーは次のエラーメッセージを表示するために必要な77445行の代わりに227451個の新しい行を生成します: 'ファーストフード "、: の置換行は227451行、データは77445である – rkuebler
これは問題ではありません、' grepl( "a"、list(c、 "a"、 "b")、 "c"問題は上記のネストされたデータフレームです –