과학적 표기법을 비활성화하려면 어떻게 해야 합니까?
p-값 열이 있는 데이터 프레임이 있는데 이 p-값을 선택하려고 합니다.
> pvalues_anova
[1] 9.693919e-01 9.781728e-01 9.918415e-01 9.716883e-01 1.667183e-02
[6] 9.952762e-02 5.386854e-01 9.997699e-01 8.714044e-01 7.211856e-01
[11] 9.536330e-01 9.239667e-01 9.645590e-01 9.478572e-01 6.243775e-01
[16] 5.608563e-01 1.371190e-04 9.601970e-01 9.988648e-01 9.698365e-01
[21] 2.795891e-06 1.290176e-01 7.125751e-01 5.193604e-01 4.835312e-04
선택 방법:
anovatest<- results[ - which(results$pvalues_anova < 0.8) ,]
R에서 사용하면 기능이 정말 잘 작동합니다.하지만 다른 애플리케이션(갤럭시)에서 실행하면 없는 숫자가e-01
예.4.835312e-04
버림받지 않습니다.
다음과 같이 p-값을 기록할 수 있는 다른 것이 있습니까?0.0004835312
대신에4.835312e-04
?
다음 코드를 사용하여 인쇄 시 과학적 표기법을 효과적으로 제거할 수 있습니다.
options(scipen=999)
format(99999999,scientific = FALSE)
기브즈
99999999
기존의 모든 답변 요약
(그리고 내 요점 몇 가지 추가)
참고: 아래 설명에서,value
일부 (숫자/숫자) 형식으로 표시할 숫자입니다.
솔루션 1:
options(scipen=999)
솔루션 2:
format(value, scientific=FALSE);
솔루션 3:
as.integer(value);
솔루션 4:
과학적 표기법으로 인쇄되지 않은 정수를 사용할 수 있습니다.뒤에 "L"을 붙여 숫자가 정수임을 지정할 수 있습니다.
paste(100000L)
인쇄 예정100000
솔루션 5:
'sprintf()'를 사용하여 형식을 엄격하게 제어합니다.
sprintf("%6d", 100000)
인쇄 예정100000
솔루션 6:
prettyNum(value, scientific = FALSE, digits = 16)
나는 또한 발견합니다.prettyNum(..., scientific = FALSE)
함수는 뒤에 0이 있는 것을 원하지 않을 때 인쇄하는 데 유용합니다.이러한 기능은 인쇄 목적에 유용합니다. 즉, 이러한 기능의 출력은 숫자가 아니라 문자열입니다.
p_value <- c(2.45496e-5, 3e-17, 5.002e-5, 0.3, 123456789.123456789)
format(p_value, scientific = FALSE)
#> [1] " 0.00002454960000000" " 0.00000000000000003"
#> [3] " 0.00005002000000000" " 0.29999999999999999"
#> [5] "123456789.12345679104328156"
format(p_value, scientific = FALSE, drop0trailing = TRUE)
#> [1] " 0.0000245496" " 0.00000000000000003"
#> [3] " 0.00005002" " 0.29999999999999999"
#> [5] "123456789.12345679104328156"
# Please note that the last number's last two digits are rounded:
prettyNum(p_value, scientific = FALSE, digits = 16)
#> [1] "0.0000245496" "0.00000000000000003" "0.00005002"
#> [4] "0.3" "123456789.1234568"
기존 답변 외에도, 예를 들어, 앞에서 언급한 내용을 사용하고자 하는 경우format()
전체 열에 dplyr과 함께, 그 다음.format()
람다 함수 안으로 감싸야 합니다.
colors <- c("red", "green", "blue", "yellow", "orange")
floats <- runif(5) / 1000000
df <- data.frame(colors, floats) %>%
dplyr::mutate_if(is.numeric, function(x) format(x, scientific = FALSE))
@httpskam은 이것을 댓글로 달았습니다 (즉, 사용).withr
) 더 위쪽으로.기능/패키지를 개발하는 경우 유용합니다.저는 그 제안의 인지도를 높이기 위해 여기에 답변을 드립니다.
# show standard setting to confirm ground truth
getOption("scipen")
vect <- c(4.835312e-06, 4.835312e-05, 4.835312e-04)
print(vect)
print_non_scientific <- function(x) {
# show setting within function
withr::local_options(list(scipen = 999))
print(getOption("scipen"))
print(x)
}
print_non_scientific(vect)
# show standard setting to confirm that the function did not change it
getOption("scipen")
내 컴퓨터의 출력:
> # show standard setting to confirm ground truth
> getOption("scipen")
[1] 0
>
> vect <- c(4.835312e-06, 4.835312e-05, 4.835312e-04)
> print(vect)
[1] 4.835312e-06 4.835312e-05 4.835312e-04
>
> print_non_scientific <- function(x) {
+ # show setting within function
+ withr::local_options(list(scipen = 999))
+ print(getOption("scipen"))
+ print(x)
+ }
>
> print_non_scientific(vect)
[1] 999
[1] 0.000004835312 0.000048353120 0.000483531200
>
> # show standard setting to confirm that the function did not change it
> getOption("scipen")
[1] 0
언급URL : https://stackoverflow.com/questions/5352099/how-can-i-disable-scientific-notation
'bestsource' 카테고리의 다른 글
C#의 배열 조각 (0) | 2023.06.13 |
---|---|
즐겨찾기 Visual Studio 바로 가기 키 (0) | 2023.06.13 |
파이테스트를 사용하여 오류가 발생하지 않았는지 확인하는 방법 (0) | 2023.06.13 |
UIBarButtonItem 글꼴 변경 (0) | 2023.06.13 |
여러 열이 있는 SQL Server의 'In' 절 (0) | 2023.06.13 |