Format a column of numbers in a way to make it easy to understand.
lucid(x, dig = 3, na.value = NULL, ...) # S3 method for default lucid(x, dig = 3, na.value = NULL, ...) # S3 method for numeric lucid(x, dig = 3, na.value = NULL, ...) # S3 method for data.frame lucid(x, dig = 3, na.value = NULL, ...) # S3 method for matrix lucid(x, dig = 3, na.value = NULL, ...) # S3 method for list lucid(x, dig = 3, na.value = NULL, ...) # S3 method for tbl_df lucid(x, dig = 3, na.value = NULL, ...)
x | Object to format. |
---|---|
dig | Number of significant digits to use in printing. |
na.value | Character string to use instead of 'NA' for numeric missing values. Default is NULL, which does nothing. |
... | Additional arguments passed to the data.frame method. |
Text, formatted in a human-readable way. Standard R methods are used to print the value.
Output from R is often in scientific notation, which makes it difficult to quickly glance at numbers and gain an understanding of the relative values. This function formats the numbers in a way that makes interpretation of the numbers _immediately_ apparent.
The sequence of steps in formatting the output is: (1) zap to zero (2) use significant digits (3) drop trailing zeros after decimal (4) align decimals.
#> [1] 123.000000 12.300000 1.230000 0.123456lucid(x0, dig=2)#> [1] "120 " " 12 " " 1.2 " " 0.12"#> [1] "123 " " --" " 1.23" " --"#> mpg cyl disp hp drat wt qsec vs am gear carb #> Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4 #> Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4 #> Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4 #> Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1 #> Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 #> Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1lucid(mtcars[15:20,])#> mpg cyl disp hp drat wt qsec vs am gear carb #> Cadillac Fleetwood 10.4 8 472 205 2.93 5.25 18 0 0 3 4 #> Lincoln Continental 10.4 8 460 215 3 5.42 17.8 0 0 3 4 #> Chrysler Imperial 14.7 8 440 230 3.23 5.34 17.4 0 0 3 4 #> Fiat 128 32.4 4 78.7 66 4.08 2.2 19.5 1 1 4 1 #> Honda Civic 30.4 4 75.7 52 4.93 1.62 18.5 1 1 4 2 #> Toyota Corolla 33.9 4 71.1 65 4.22 1.84 19.9 1 1 4 1#> [1] 3.333333e-01 1.666667e+00 1.000000e+00 1.500000e+00 2.000000e+00 #> [6] 1.833333e+00 8.333333e-01 8.432157e-17lucid(x2)#> [1] "0.333" "1.67 " "1 " "1.5 " "2 " "1.83 " "0.833" "0 "# Which coef is 0 ? How large is the intercept? df1 <- data.frame(effect=c(-13.5, 4.5, 24.5, 6.927792e-14, -1.75, 16.5, 113.5000)) rownames(df1) <- c("A","B","C","C1","C2","D","(Intercept)") print(df1)#> effect #> A -1.350000e+01 #> B 4.500000e+00 #> C 2.450000e+01 #> C1 6.927792e-14 #> C2 -1.750000e+00 #> D 1.650000e+01 #> (Intercept) 1.135000e+02lucid(df1)#> effect #> A -13.5 #> B 4.5 #> C 24.5 #> C1 0 #> C2 -1.75 #> D 16.5 #> (Intercept) 114df2 <- data.frame(effect=c("hyb","region","region:loc","hyb:region", "yr","hyb:yr","region:yr","R!variance"), component=c(10.9,277,493,1.30E-04,126,22.3,481,268), std.error=c(4.40,166,26.1,1.58E-06,119,4.50,108,3.25), z.ratio=c(2.471,1.669,18.899,82.242, 1.060,4.951,4.442,82.242), constraint=c("pos","pos","pos","bnd", "pos","pos","pos","pos")) print(df2)#> effect component std.error z.ratio constraint #> 1 hyb 1.09e+01 4.40e+00 2.471 pos #> 2 region 2.77e+02 1.66e+02 1.669 pos #> 3 region:loc 4.93e+02 2.61e+01 18.899 pos #> 4 hyb:region 1.30e-04 1.58e-06 82.242 bnd #> 5 yr 1.26e+02 1.19e+02 1.060 pos #> 6 hyb:yr 2.23e+01 4.50e+00 4.951 pos #> 7 region:yr 4.81e+02 1.08e+02 4.442 pos #> 8 R!variance 2.68e+02 3.25e+00 82.242 poslucid(df2)#> effect component std.error z.ratio constraint #> 1 hyb 10.9 4.4 2.47 pos #> 2 region 277 166 1.67 pos #> 3 region:loc 493 26.1 18.9 pos #> 4 hyb:region 0.0001 0 82.2 bnd #> 5 yr 126 119 1.06 pos #> 6 hyb:yr 22.3 4.5 4.95 pos #> 7 region:yr 481 108 4.44 pos #> 8 R!variance 268 3.25 82.2 pos