2017-12-04 14 views
2

내가 가지고있는 다음과 같은 데이터 세트의 위치에 따라 텍스트를 구문 분석 stringr를 사용해야합니다. devtools::reproduce()을 사용하여 여기에 데이터 샘플을 입력하고 도움이 필요한 열만 선택했습니다 (genres).문자열

아래에 나열된 장르가 많이 있습니다. 나는 영화 데이터베이스를 가지고 일하고 있는데 거기에 나열된 첫 번째 장르 만 사용하고 싶습니다 (이 형식은 Genre1 | Genre2 | Genre3).

어떻게 stringr 사용합니까 또는 다른 패키지 내가 원하는 방식으로이 문자열 데이터를 구문 분석?

최종 결과는 회귀 모델을 사용하는 것입니다.

> dput(droplevels(head(movie.cpi,4))) 
structure(list(num_critic_for_reviews = c(723L, 302L, 813L, 462L 
), director_facebook_likes = c(0L, 563L, 22000L, 475L), actor_3_facebook_likes = c(855L, 
1000L, 23000L, 530L), actor_1_facebook_likes = c(1000L, 40000L, 
27000L, 640L), gross = c(866161204.765035, 364628240.876025, 
476821933.103659, 77736216.375), genres = structure(c(2L, 1L, 
4L, 3L), .Label = c("Action|Adventure|Fantasy", "Action|Adventure|Fantasy|Sci-Fi", 
"Action|Adventure|Sci-Fi", "Action|Thriller"), class = "factor"), 
    num_voted_users = c(886204L, 471220L, 1144337L, 212204L), 
    cast_total_facebook_likes = c(4834L, 48350L, 106759L, 1873L 
    ), facenumber_in_poster = c(0L, 0L, 0L, 1L), num_user_for_reviews = c(3054L, 
    1238L, 2701L, 738L), content_rating = structure(c(1L, 1L, 
    1L, 1L), .Label = "PG-13", class = "factor"), budget = c(269925874.125874, 
    353545586.107091, 266006097.560976, 280583231.707317), title_year = c(2009L, 
    2007L, 2012L, 2012L), actor_2_facebook_likes = c(936L, 5000L, 
    23000L, 632L), imdb_score = c(7.9, 7.1, 8.5, 6.6), movie_facebook_likes = c(33000L, 
    0L, 164000L, 24000L)), .Names = c("num_critic_for_reviews", 
"director_facebook_likes", "actor_3_facebook_likes", "actor_1_facebook_likes", 
"gross", "genres", "num_voted_users", "cast_total_facebook_likes", 
"facenumber_in_poster", "num_user_for_reviews", "content_rating", 
"budget", "title_year", "actor_2_facebook_likes", "imdb_score", 
"movie_facebook_likes"), row.names = c(NA, 4L), class = "data.frame") 
+2

'movie.cpi $ genre_1 <- gsub ("\\ |. * $", "", movie.cpi $ genres)'. 전체 데이터를 게시 할 때 확실히 말할 수 있습니다. – Masoud

답변

0

해당 컬럼에서 추출 된 최초의 장르를 얻을 수있는 다음 명령을 사용하여 (나는 새로운 컬럼에 저장이 genre_1라고도 함) :

이 아마 일하는 것이
movie.cpi$genre_1 <- gsub("\\|.*$", "", movie.cpi$genres) 

movie.cpi[,c("genres", "genre_1")] 

##       genres genre_1 
## 1 Action|Adventure|Fantasy|Sci-Fi Action 
## 2  Action|Adventure|Fantasy Action 
## 3     Action|Thriller Action 
## 4   Action|Adventure|Sci-Fi Action