2016-06-12 2 views
0

변환하려는 데이터 프레임의 각 행에 무작위로 정렬 된 목록이 있습니다. 부울 열은 목록에서각 열에 부울 열로 변환하려는 임의의 순서 목록이 있습니다. R 내용을 열 이름으로 사용합니다.

샘플 데이터 R.의 열 이름으로 목록 요소의 내용을 사용하여 :

[[9675]] 
[1] "Jazz"  "Music" 
[[9676]] 
[1] "Modern"   "Opera" "Music" 
[[9677]] 
[1] "Rock"  "Music"  
[[9678]] 
[1] "HMetal"  "Rock"  "Music" 

가 나는 결과를 원하는가되게합니다 뭔가 같은 :

 Genre.Music Genre.Modern Genre.Jazz Genre.Classical Genre.Opera Genre.Rock Genre.HMetal 
[[9675]] 1   0    1   0    0   0   0 
[[9676]] 1   1    0   0    1   0   0    
[[9677]] 1   0    0   0    0   1   0               1              
[[9678]] 1   0    0   0    0   1   1           

총 200 장의 장르를 가지고 있기 때문에 각 레코드를 읽을 때마다 각 열을 즉석에서 만들 수 있기를 바랍니다.

목록 항목의 내용을 열의 키로 사용할 수있는 방법이 있습니까? 컬럼 생성 과정에서 도움이된다면 사전에 목록을 확실히 분류 할 수 있습니다.

저는 통계 분석에서 최종 결과를 사용하려고합니다.

답변

1

당신은

lst <- list(
    A = letters[1:2], 
    B = letters[2:4] 
) 
lst 
# $A 
# [1] "a" "b" 
# 
# $B 
# [1] "b" "c" "d" 
library(reshape2) 
(df <- recast(lst, L1~value)) 
# L1 a b c d 
# 1 A a b <NA> <NA> 
# 2 B <NA> b c d 
cbind(df[1], (!is.na(df[-1])) +0L) 
# L1 a b c d 
# 1 A 1 1 0 0 
# 2 B 0 1 1 1 
+0

감사합니다 뭔가를 할 수 있습니다. 그것은 완벽하게 작동했습니다. – ommae