2016-12-01 4 views
0

私は5000件以上の観測データを持つRのデータセットと、1,600を超える観測データを持つ映画のデータセットを持っています。私は、データセットを結合し、それを書籍に基づいた映画だけにサブセット化したいと考えています。ここでRの数が不一致のデータセットのサブセットR

は、映画のデータセットからのカップルのサンプルデータラインです:

movie_title  duration gross  content_rating year 
Avatar   178  760505847  PG-13   2009 
The Jungle Book 106  362645141  PG    2016 

や書籍データセットからのカップル:

movie_title       book  author   released 
Hunger Games: Mockingjay, Part 2 Mockingjay Suzanne Collins 2015 
Insurgent       Insurgent Veronica Roth 2015 

私は、彼らが共通しているmovie_titles気に。 2つのデータセットをムービータイトルでマージしようとしましたが、観測値は0となっています。

filter(imdb.movies, imdb.movies$movie_title==booklist$movie_title) 

そして、このコードでそれらを組み合わせる:

movies<-merge(imdb.movies,booklist, by="movie_title") 

また、私はこのコードでそれをフィルタリングしようとしたこれらの

combined_movies<- imdb.movies[imdb.movies$movie_title==booklist$movie_title] 

いずれも動作するようには思えません。 imdb.movies$movie_title==booklist$movie_titleと比較する方法があり、同じ観測値だけを保持していますか?

+0

正しく理解していれば、 'intersect(imdb.movi​​es $ movie_title、booklist $ movie_title)'が必要です。 2つのリストの共通部分を取得したら、どちらのデータセットを交差点にムービータイトルを持つ観測値にサブセットすることができます。 – cpander

+0

は一致していますか?または、2つのデータセットの間で正確に一致すると思われるmove_titlesですか?合併のためのあなたのコードは私にとってはうまくいくようです。結果が0の場合は、一致するmovie_titleはありません。 – useR

答えて

0

あなたが使用することができdplyr使用:

inner_join(imdb.movies,booklist) 

は、両方のデータフレーム内movie_title列名が同じであることを前提とし、移動名/ブック名が同一であること。

+0

'merge(imdb.movi​​es、booklist、by = "movie_title") 'と同じ結果を返しますか? – cpander

+0

かなり長い間マージを使用していませんでしたが、ちょっと見ただけでしたが、おそらく正しいでしょう。私の答えに「完全一致」に関する警告を追加しました。 – Jacob

関連する問題