r - trouble with converting values to scientific notation 1e-3 from 0.001 etc -


i know silly question think things should more clear on this. mean converting numbers normal scientific format example usual 0.001 1e-3 format.

i know there similar questions point want process without changing global options(scipen). not use first change options(scipen) in case other values dont want them changed.

here mean, lets have data this

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 

trial 1

when 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 

as can see time v column changed not when plotting

qplot(data=data_rep,x=v,y=value) 

enter image description here

trial 2

changing format using format function

  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 

as can see, value column changed original format. how can keep scientific notation in value column?

all of established wisdom on seems fall 2 camps. 1 camp says use scipen in options, don't reasons described.

the other solution leave scientific notation on , replace tick mark labels when go plot graph.

you can use format scientific=f create non-scientific tick mark labels. guide shows how customize labels different ggplot2 plots:

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


Comments

Popular posts from this blog

javascript - Thinglink image not visible until browser resize -

firebird - Error "invalid transaction handle (expecting explicit transaction start)" executing script from Delphi -

mongodb - How to keep track of users making Stripe Payments -