2013-05-24 4 views
0

13 자 (2000 행)의 열이 있습니다. 그리고 저는 그것들을 가치로 바꾸고 싶습니다. 이 값은 특정 문자에 할당 된 모든 값의 합계 여야합니다. 예를R은 단어 합계 값으로 변환합니다

c<-"NAHLA" 

Now lets say 
N<-1 
A<-2 
L<-3 
H<-2 

이 합 내가 기능을 대체하지만 난 여러 문자에 대해 그렇게 할 수 없습니다 사용하려고 10

것 :/

합 (? 대체()) 모든 columsn에 대한 sapply

+0

'13 자의 열이 무슨 뜻입니까? 데이터를 게시 할 수 있습니까? – Fernando

답변

6

에 둘러싸여 나는 것과 같이 이런 종류 :

x <- "NAHLA" 
> key <- c(N = 1, A = 2, L = 3,H = 2) 
> sum(key[strsplit(x,"")[[1]]]) 
[1] 10 

데이터가 실제로 어떤 형식인지에 대한 설명이 약간 명확하지 않지만이 일반적인 전략이 효과가 있습니다. 예를 들어, x에 더 많은 요소가 있으면 다음과 같이 입력 할 수 있습니다.

sapply(strsplit(x,""),function(y) sum(key[y]))