2016-08-01 10 views
4

전에 (신인으로)이 패키지를 R 패키지 버그로 제출하기 전에 모두 실행하도록하겠습니다. 나는 다음의 모든 좋은 생각 :qdap 패키지 : 제로 자릿수를 "0"단어로 변환 할 때의 버그

replace_number("123 0 boogie") 
[1] "one hundred twenty three boogie" 
replace_number("1;1 foo") 
[1] "one;one foo" 
replace_number("47 bar") 
[1] "forty seven bar" 
replace_number("0") 
"zero" 

내가 "제로"출력에서 누락되어 있기 때문에 다음의 모든 나쁜 생각 : 기본적으로

replace_number("1;0 foo") 
[1] "one; foo" 
replace_number("00 bar") 
[1] "bar" 
replace_number("0x") 
[1] "x" 

, 나는 replace_number()이라고 말하고 싶지만 숫자 0을 포함하는 문자열을 처리 할 수 ​​없습니다 ("0"제외). 진짜 버그 야? 당신이 replace_number의 내장으로 파고 경우

+1

문제를 신고 할 수 있습니다. 문서에서 기능 요청 또는 적어도 경고 메시지 일 수 있습니다. –

답변

5

: 문제가 그 함수 내에서 파고 qdap:::num_sub

qdap:::num_sub("101", num.paste = "combine") ## "onehundredone" 
qdap:::num_sub("0", num.paste = "combine") ## "" 

에서 발생하는

unlist(lapply(lapply(gsub(",([0-9])", "\\1", text.var), function(x) { 
     if (!is.na(x) & length(unlist(strsplit(x, "([0-9])", 
      perl = TRUE))) > 1) { 
      num_sub(x, num.paste = num.paste) 
     } 
     else { 
      x 
     } 
    }), function(x) mgsub(0:9, ones, x))) 

당신은 내부가, 문제가 numb2word에서 발생 볼 수 있습니다 코드

ones <- c("", "one", "two", "three", "four", "five", "six", 
    "seven", "eight", "nine") 
names(ones) <- 0:9 

은 0 값을 공백으로 변환합니다. 나 자신을이 문제에 직면한다면 나는 replace_number.R로 이동 replace_numbernumb2word에 물려있어 논리적 인수 blank_zeros=TRUE를 취할 수 있도록 이전 버전과 호환 방법으로이를 변경하려고하면 qdap repo 포크와 옳은 일을 한 것 , 예.

ones <- c(if (blank_zeros) "" else "zero", 
      "one", "two", "three", "four", "five", "six", 
    "seven", "eight", "nine") 

그동안 나는 qdap issues list에 게시했습니다.

+0

코드에서 찾기가 쉽습니다. –

+0

해당 코드는 맨 앞에 0을 나타 내기위한 것이 었습니까? – smci