2017-03-06 9 views
-2

enter image description hereR : 문자열을 값으로 분리하고 그 결과 조각을 결과 집합으로 데이터 집합에 매핑하는 방법은 무엇입니까?

위 사진에서 볼 수 있듯이 해당 영화가 속한 장르 목록이있는 장르가 있습니다. 총 19 개의 독특한 장르가 있습니다. 각 장르 식별자에 해당하는 데이터 세트에 19 개의 열을 추가하고이 데이터를 각 장르 열의 영화 소속을 나타내는 0 또는 1로 레이블링하여이 데이터를 조작 할 수 있는지 알고 싶습니다.

아래 그림과 같이 보일 것입니다.

enter image description here

+1

@akrun - whoops, 틀린 것을 움켜 잡습니다. 지금은 더 좋아야합니다. 그래서 최근에는 중복을 편집 할 수있는 기능이 도입되었습니다. 더 나은 것을 찾으면 다시 변경하십시오. – thelatemail

+0

@thelatemail 오하이오, 변경 주셔서 감사합니다. – akrun

답변

2

우리는 '장르'열

library(qdapTools) 
d1 <- mtabulate(strsplit(as.character(df1$genres),",")) 
row.names(d1) <- sub("\\s*\\(.*", "", df1$title) 

또는 다른 옵션을 분할 한 후이 작업을 수행 할 수있는 것은 비교를 한 후 '장르'로 열 이름을 가진 행렬을 작성하는 것입니다 스플릿 문자열에

m1 <- matrix(0, dimnames = list(sub("\\s*\\(.*", "", df1$title), 
     c("Adventure", "Animation", "Children", 
    "Comedy", "Fantasy", "Romance", "Action", "Crime", "Thriller")), ncol=9, nrow = nrow(df1)) 
m1 + (t(sapply(strsplit(as.character(df1$genres), ","), function(x) colnames(m1) %in% x))) 
#   Adventure Animation Children Comedy Fantasy Romance Action Crime Thriller 
#Toy Story   1   1  1  1  1  0  0  0  0 
#Jumanji   1   0  1  0  1  0  0  0  0 
#Heat    0   0  0  0  0  0  1  1  1 
+0

감사합니다. – user007

+0

@BharathBallamudi 기꺼이 도와 드리겠습니다. 또한 [여기] (http://stackoverflow.com/help/someone-answers)에서 확인할 수 있습니다. – akrun