[r] R이 지수 표기법 (예 : e + 10)을 사용하지 않도록 강제합니까?

R이 e+10-와 같은 표기법 을 사용하는 대신 일반 숫자를 사용하도록 할 수 있습니까 ? 나는 가지고있다:

1.810032e+09
# and 
4

같은 벡터 내에서보고 싶어 :

1810032000
# and
4

구식 프로그램에 대한 출력을 작성 중이며를 사용하여 텍스트 파일을 작성해야합니다 cat. 그것은 지금까지 잘 작동하지만 나는 단순히 그 e+10표기법을 사용할 수 없습니다 .



답변

이것은 약간 회색 영역입니다. R은 항상 인쇄 메소드를 호출하고 이러한 인쇄 메소드는 일부 옵션을 수신한다는 것을 기억해야합니다. 과학 디스플레이에 대한 벌칙 인 ‘scipen’포함. 보낸 사람 help(options):

‘scipen’: 정수 고정 또는 지수 표기법으로 숫자 값을 인쇄하기로 결정할 때 적용되는 페널티입니다. 양수 값은 고정 된 표기법으로, 음수는 과학적 표기법으로 편향됩니다. 고정 된 표기법은 ‘숫자’보다 넓지 않은 한 선호됩니다.

예:

R> ran2 <- c(1.810032e+09, 4)
R> options("scipen"=-100, "digits"=4)
R> ran2
[1] 1.81e+09 4.00e+00
R> options("scipen"=100, "digits"=4)
R> ran2
[1] 1810032000          4

즉, 나는 여전히 퍼지 가치가 있다고 생각합니다. 가장 직접적인 방법은 sprintf()명시적인 너비 를 사용 하는 것 sprintf("%.5f", ran2)입니다.


답변

R에서 과학적 표기법을 비활성화하여 얻을 수 있습니다.

options(scipen = 999)


답변

내가 가장 좋아하는 답변 :

format(1810032000, scientific = FALSE)
# [1] "1810032000"

이것은 R 설정에서 고민하지 않고도 원하는 것을 제공합니다.

숫자 객체가 아닌 문자열을 반환합니다.


답변

기본적으로 자동 실행되도록 .Rprofile 파일을 넣으십시오 options(scipen = 999) . . (수동으로 수행하지 마십시오.)

(이것은 다른 답변과 다른 것을 말하고 있습니다 : 어떻게?

  1. 이렇게하면 매일 또는 매월 여러 프로젝트, 여러 언어간에 썽크 할 때 상황이 제대로 유지됩니다. 프로젝트 별 설정을 입력하면 오류가 발생하기 쉽고 확장 할 수 없습니다. 전역 ~ ​​/ .Rprofile 또는 프로젝트 당 .Rprofile을 가질 수 있습니다. 또는 두 가지 모두 후자가 전자보다 우선합니다.
  2. 모든 구성을 프로젝트 전체 또는 전역 .Rprofile에 유지하면 자동으로 실행됩니다. 예를 들어 기본 패키지로드, data.table 구성, 환경 등에 유용합니다. 다시 한 번 해당 구성이 설정 페이지로 실행될 수 있으며 해당 구성 및 구문을 기억하고 입력 할 가능성이 없습니다.

답변