숫자 데이터를 14 자리를 초과 할 수없는 다른 프로그래밍 언어로 텍스트 파일로 내보내야합니다. 모든 요소가 쉼표로 분리되어 있어야하는 것은 아니므로이 방법을 사용합니다.R : 과학 표기법의 숫자에서 강요 한 문자 열을 gsub로 대체
gsub
은 문자 열로 강제 변환 될 때 숫자 42를 재조정하지 않으며 과학 표기법 옵션 scipen
을 충분히 낮게 설정하면 42가 전자 표기법으로 인쇄됩니다.
여기서 scipen=-10
42는 E 표기법으로 인쇄됩니다.
x <- 4.2e+1 # The meaning of life
options(scipen = -10)
gsub(pattern=x,replacement=paste(",",x),x,useBytes=TRUE)
[1] "4.2e+01"
gsub(pattern=x,replacement=paste(",",x),x,useBytes=FALSE)
[1] "4.2e+01"
마치 일치를 재조정하지 않는 것과 같습니다. 나는 또한 시도했다,
gsub(pattern=x,replacement=paste(",",x),as.character(x))
그러나 운 없음으로.
다음 두 예제에서 은 예상대로 작동하고 4230이 42
으로 인쇄되도록 충분히 높습니다.
x <- 4.2e+1 # Still the meaning of life
options(scipen = 0)
gsub(pattern=x,replacement=paste(",",x),x,useBytes=TRUE)
[1] ", 42"
gsub(pattern=x,replacement=paste(",",x),x,useBytes=FALSE)
[1] ", 42"
useBytes
옵션을 보면 알 수 있듯이 도움이되지 않습니다. 누군가 내가 얻을 수없는 것을 말해 줄 수 있습니까?
감사합니다.