2014-09-02 9 views
1

5,6 자리 숫자/문자로 구성된 데이터 프레임에 변수가 있습니다. 5 자리 숫자가있는 변수의 값은 모두 숫자입니다. 27701 그러나 6 자리 숫자는 모두 문자 앞에 'C'문자가 있습니다. C22701.열의 특정 값 바꾸기 R

어떻게 'C'문자를 999로 바꿀 수 있습니까?

나는 시도했다 :

replace(data$varname,'C',999) 

모든 아이디어의 사람들을?

+5

'data $ varname <- gsub ('C', '999', data $ varname)'어쩌면? 'varname'이'factor '인 경우 문제가 발생할 수 있습니다. –

+0

David 님, 완벽하게 작동합니다! – Ash

+0

최종적으로 어떤 형식의 변수를 사용 하시겠습니까? '캐릭터? '요인? '숫자 '? – CephBirk

답변

2

data$varname <- as.numeric(gsub('C', '999', data$varname)) 트릭을 수행해야한다고 생각합니다. 결국 숫자 벡터가 필요하다고 가정합니다. 문자 벡터가 필요하면 as.numeric을 끕니다.

0

substring을 사용하여 첫 번째 문자를 제거하고 paste0을 사용하여 999를 추가 할 수 있습니다.

> x <- c("C000", "P1745") 
> paste0("999", substring(x,2)) 
# [1] "999000" "9991745" 
관련 문제