これは愚かな質問かもしれないが、これについてはもっと明確にすべきだと思う。私は、通常の0.001から1e-3の形式など、通常の形式から科学的な形式に数値を変換することを意味します。0.001などから値を科学記法1e-3に変換するのに問題がある
私は同じような質問があることを知っていますが、ポイントはグローバルoptions(scipen)
を変更せずにこのプロセスを実行したいということです。それは私がそれらを変更したくない他の値として私の場合は常に最初にoptions(scipen)
を変更するのは良い使用ではありません。ここで
set.seed(12345)
set =rep(rep(c("1","2"),each=5),times=1)
V=rep(seq(1,1.4,0.1),times=2)
value <- replicate(1,c(replicate(2,sort(10^runif(5,-3,0),decreasing=FALSE))))
data_rep <- data.frame(V, value,set)
#> data_rep
# V value set
#1 1.0 0.002351715 1
#2 1.1 0.005382811 1
#3 1.2 0.023703932 1
#4 1.3 0.058314556 1
#5 1.4 0.476184589 1
#6 1.0 0.001595635 2
#7 1.1 0.001896175 2
#8 1.2 0.034667861 2
#9 1.3 0.097931107 2
#10 1.4 0.197982134 2
試用版のようなデータを持って言うことができます1
今回のV列を見ることができるように、我々はoptions(scipen=-10)
#> data_rep
# V value set
#1 1.0e+00 2.341224e-02 1
#2 1.1e+00 1.454493e-01 1
#3 1.2e+00 1.918435e-01 1
#4 1.3e+00 4.239548e-01 1
#5 1.4e+00 4.553797e-01 1
#6 1.0e+00 3.155843e-03 2
#7 1.1e+00 9.446831e-03 2
#8 1.2e+00 3.370335e-02 2
#9 1.3e+00 1.524459e-01 2
#10 1.4e+00 9.315600e-01 2
行うと変更してプロットするとうまくいかない
qplot(data=data_rep,x=V,y=value)
試験2
は
options(scipen = 0)
library(dplyr)
df_format <- data_rep%>%
mutate(value=as.numeric(format(value,scientific=TRUE,digits=4))) %>%
mutate(logic=ifelse(value<2e-1,TRUE,FALSE))
# > df_format
# V value set logic
#1 1.0 0.023410 1 TRUE
#2 1.1 0.145400 1 TRUE
#3 1.2 0.191800 1 TRUE
#4 1.3 0.424000 1 FALSE
#5 1.4 0.455400 1 FALSE
#6 1.0 0.003156 2 TRUE
#7 1.1 0.009447 2 TRUE
#8 1.2 0.033700 2 TRUE
#9 1.3 0.152400 2 TRUE
#10 1.4 0.931600 2 FALSE
我々が見ることができるようにformat
関数を使用して書式を変更、値の列は、元の形式に変更しました。 value
欄にどのように科学記法を守ることができますか?
あなたは何をすべきはい、あなたがこの上で右ある上、科学的表記を残して、ちょうどプログラムで –