2013-03-22 2 views
1

Excel에서 "accounting"스타일의 데이터 형식이 ($317.40) 또는 $13,645.48 인 데이터가 있습니다. 정규 표현식 초보자로서, 쓸모없는 심볼을 모두 제거하고 괄호로 문자열을 음수로 변환하는보다 효율적인 방법을 찾고 있습니다.회계 데이터 문자열을 정수로 변환합니다 (양수 및 음수)

spending$Amount <- gsub("^[(]", "-", spending$Amount) 
spending$Amount <- gsub("[$]", "", spending$Amount) 
spending$Amount <- gsub("[)]", "", spending$Amount) 
spending$Amount <- as.numeric(gsub("[,]", "", spending$Amount)) 

내가 한 줄이 작업을 수행 할 수 있습니다 여기에

내가 지금까지 해왔 방법은? 그것을 할 수있는 전문화 된 R 패키지가 있습니까?

답변

2

A는 빠른 응답을 gsub 솔루션

x <- c("($317.40)", "$13,645.48") 
as.numeric(gsub("\\(", "-", gsub("\\)|\\$|,", "", x))) 
## [1] -317.40 13645.48 


## Really convoluted bad way of doing it solution 
mapply(FUN = function(x,y) ifelse(x,-1,1)*as.numeric(paste(y,collapse="")), grepl('\\(',x) ,regmatches(x, gregexpr('[0-9\\.]+',x))) 
+0

감사를 중첩! –

+0

다른 방법으로해야하는 경우 .. 음수 값을 중괄호로 대치하면 어떻게해야합니까? –

관련 문제