2014-11-24 3 views
0

청구서 ID에 해당하는 일련의 6 자리 숫자가있는 데이터 프레임이 있습니다. 홀수 번호로 시작하는 ID는 집 투표에 해당하고 짝수 번호는 상원 투표에 해당합니다. 예를 들어, 내 변수는 다음과 같이 보일 것이다 :문자열의 첫 번째 숫자 만 일치하는 패턴 R

var <- runif(20, 100000, 999999) 

내가 짝수로 시작하는 값을 구분하는 부분 집합() 명령과 함께 사용할 수있는 그렙() 코드를 알아 내려고 노력에 붙어 오전 홀수로 시작하는 것들. 누구든지 어떤 제안이 있습니까? 고맙습니다!

답변

1
evenNo <- subset(var, trunc(var*1e-5) %% 2 == 0) 

unevenNo <- subset(var, trunc(var*1e-5) %% 2 == 1) 
6

또한 is.even <- grepl('^[02468]', var)

+0

그래, 그 어 '할 수 있습니다. 아주 간단합니다. –

1
var <- runif(20, 100000, 999999) 
odds <- substr(var,1,1) %in% c("1", "3", "5", "7", "9") 
evens <- substr(var,1,1) %in% c("2", "4", "6", "8") 

var[odds] 
var[evens] 

를 사용하거나 데이터 프레임 인 경우

df <- data.frame(var = runif(20, 100000, 999999), 
       outcome = rbinom(20, 1, .5) 
       ) 

odds <- df[substr(df$var,1,1) %in% c("1", "3", "5", "7", "9"),] 
evens <- df[substr(df$var,1,1) %in% c("2", "4", "6", "8"),] 
관련 문제