R : 문자열을 값으로 분리하고 그 결과 조각을 결과 집합으로 데이터 집합에 매핑하는 방법은 무엇입니까?
위 사진에서 볼 수 있듯이 해당 영화가 속한 장르 목록이있는 장르가 있습니다. 총 19 개의 독특한 장르가 있습니다. 각 장르 식별자에 해당하는 데이터 세트에 19 개의 열을 추가하고이 데이터를 각 장르 열의 영화 소속을 나타내는 0 또는 1로 레이블링하여이 데이터를 조작 할 수 있는지 알고 싶습니다.
아래 그림과 같이 보일 것입니다.
R : 문자열을 값으로 분리하고 그 결과 조각을 결과 집합으로 데이터 집합에 매핑하는 방법은 무엇입니까?
위 사진에서 볼 수 있듯이 해당 영화가 속한 장르 목록이있는 장르가 있습니다. 총 19 개의 독특한 장르가 있습니다. 각 장르 식별자에 해당하는 데이터 세트에 19 개의 열을 추가하고이 데이터를 각 장르 열의 영화 소속을 나타내는 0 또는 1로 레이블링하여이 데이터를 조작 할 수 있는지 알고 싶습니다.
아래 그림과 같이 보일 것입니다.
우리는 '장르'열
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
@akrun - whoops, 틀린 것을 움켜 잡습니다. 지금은 더 좋아야합니다. 그래서 최근에는 중복을 편집 할 수있는 기능이 도입되었습니다. 더 나은 것을 찾으면 다시 변경하십시오. – thelatemail
@thelatemail 오하이오, 변경 주셔서 감사합니다. – akrun