2016-09-13 4 views
1

これは愚かな質問かもしれないが、これについてはもっと明確にすべきだと思う。私は、通常の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) 

enter image description here

試験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欄にどのように科学記法を守ることができますか?

+0

あなたは何をすべきはい、あなたがこの上で右ある上、科学的表記を残して、ちょうどプログラムで –

答えて

2

これに関する確立された知恵はすべて、2つのキャンプに分類されるようです。 1つのキャンプでscipenoptionsに使用すると言いますが、それはあなたが説明した理由で好きではありません。

他の解決方法は、グラフをプロットするときに、科学的表記を残して目盛りのラベルを置き換えることです。

formatscientific=Fを使用すると、非科学的な目盛りラベルを作成できます。このガイドでは、さまざまなggplot2プロットのためにこれらのラベルをカスタマイズする方法を示しています。

http://www.sthda.com/english/wiki/ggplot2-axis-ticks-a-guide-to-customize-tick-marks-and-labels

+1

ラベルを変更することです。私はggplotのフォーマットを変更できることを知っていますが、私は 'scipen'を使わないで別のものを使いたいと思っています。 – Alexander

関連する問題