programing

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

abcjava 2023. 6. 5. 23:29
반응형

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

R에게 다음을 사용하는 대신 정규 번호를 사용하도록 강제할 수 있습니까?e+10-표기법처럼?소유자:

1.810032e+09
# and 
4

동일한 벡터 내에서 다음을 확인합니다.

1810032000
# and
4

오래된 프로그램의 출력을 만들고 있으며 다음을 사용하여 텍스트 파일을 작성해야 합니다.cat아직까지는 잘 작동하지만 저는 단순히 사용할 수 없습니다.e+10거기 표기법.

여기는 약간 회색 지역입니다.R은 항상 인쇄 방법을 호출하고 이러한 인쇄 방법은 몇 가지 옵션을 수신합니다.과학적 표시에 대한 벌칙인 'science'를 포함합니다.부터help(options):

'scipen': 정수입니다.고정 또는 지수 표기법으로 숫자 값을 인쇄하기로 결정할 때 적용되는 패널티입니다.양의 값은 고정된 쪽으로 치우치고 음의 값은 과학적 표기법 쪽으로 치우칩니다. 'scien' 자리 이상이 아니면 고정된 표기법이 선호됩니다.

예:

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 설정에서 낭비할 필요 없이 당신이 원하는 것을 제공합니다.

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

놓다options(scipen = 999) 경우에.Rprofile 파일이 기본적으로 자동 실행되도록 합니다. (수동으로 실행하지 마십시오.)

(이것은 다른 대답들과는 다른 것을 말해줍니다: 어떻게?

  1. 이를 통해 매일 또는 매월 여러 프로젝트, 여러 언어를 고려할 때 모든 것이 정상적으로 유지됩니다.프로젝트별 설정을 입력하는 것은 오류가 발생하기 쉽고 확장성이 없습니다.전역 ~/을 가질 수 있습니다.Rprofile 또는 프로젝트별.R 프로파일.아니면 둘 다, 후자가 전자를 무시하는 것과 함께.
  2. 모든 구성을 프로젝트 전체 또는 전역으로 유지합니다.Rprofile이 자동으로 실행합니다.이 기능은 기본 패키지 로드, data.table 구성, 환경 등에 유용합니다.다시 말하지만, 그 구성은 설정 페이지까지 실행될 수 있고, 당신이 그것들과 그것들의 구문을 기억하고 그것들을 입력할 가능성은 없습니다.

언급URL : https://stackoverflow.com/questions/9397664/force-r-not-to-use-exponential-notation-e-g-e10

반응형