2014-11-19 3 views
0

바꾸기 명령을 사용하여 요소 수준을 관련 값으로 바꿉니다. 나는이 작업을 수행하기 위해 노력하고있어 내 데이터 프레임 3 개의 변수가 있고, (2)는 완벽하게 작동하지만, 세 번째는 나에게 다음과 같은 오류주고있다 :R 바꾸기 명령 오류

경고 메시지 :

In `[<-.factor`(`*tmp*`, list, value = c(11.76, 13.56, -1.64, -14.04, : 
    invalid factor level, NA generated 

어떤 생각 이유를 아마도?

데이터 :

 Outfit Wearer Color Score 
1  E  1  R 64 
2  E  2  G 75 
3  E  3  W 71 
4  E  4 Bk 93 
5  E  5 Bu 86 
6  H  1  W 90 

코드 :

new.dat$Color <- replace(new.dat$color, col.m[,1], col.m[,3]) 
    new.dat$Wearer <- replace(new.dat$Wearer, wear.m[,1], wear.m[,3]) 
    new.dat$Outfit <- replace(new.dat$Outfit, out.m[,1], out.m[,3]) 

마지막 하나, 옷이 작동하지 않습니다.

 Group.1 x dev 
1   B 52.0 -14.04 
2   E 77.8 11.76 
3   H 79.6 13.56 
4   J 56.4 -9.64 
5   S 64.4 -1.64 

가 나는 또한 경우에 '트림'벡터와 일치 지수는 공백 문제였다하려하지만 도움이되지 않았다 이것은 out.m의 모습입니다.

의견을 보내 주셔서 감사합니다.

+0

'new.dat $ Outfit'은 2 단계 만있는'factor '이므로'E '또는'H '이외의 값으로 대체 할 수 없습니다. 또한, 나는'replace'가 당신에게 원하는 결과를주는 것이라고 생각하지 않습니다. 당신이 얻고있는 것을 확인하십시오. 예상대로 B 대 B, E 대 E 등이 일치하지 않습니다. – thelatemail

+0

new.dat $ Outfit은 5 단계로 구성되어 있습니다. 내가 제공 한 것은 부분 집합입니다. 또한 일치하는 테이블에는 5 개의 레벨이 있습니다. 나는 대체가 내가 일반적으로 생각하는 것을하지 않는다는 것이 사실일지도 모른다라고 생각한다. 그것은 나에게 그것이 작동해야한다고 생각하지만 어쩌면 나는 문서를 잘못 해석하고있다. – Tiffany

+0

'match'를 대신 사용해보십시오. 'out.m $ dev [match (new.dat $ Outfit, out.m $ Group.1)]'에서와 같이' – thelatemail

답변

0

이전 게시물에서 다음과 같은 작업을 발견했습니다. 나는 문제에 대해 어떻게 생각하고 있었는지 바꿔서 이전에 그 게시물을 발견하지 못했습니다.

다음은 일 무엇 :이 게시물에서

new.dat[,"col.dev"]<-col.m[new.dat[ ,"Color"], "dev"] 
new.dat[,"out.dev"]<-out.m[new.dat[ ,"Outfit"], "dev"] 
new.dat[,"wear.dev"]<-wear.m[new.dat[ ,"Wearer"], "dev"] 

:

How to join (merge) data frames (inner, outer, left, right)?

감사합니다!