First compare

> format(c(0.52, 0.17, 0.03, 1e-20))

[1] "5.2e-01" "1.7e-01" "3.0e-02" "1.0e-20"

> prettyNum(c(0.52, 0.17, 0.03, 1e-20))

[1] "0.52" "0.17" "0.03" "1e-20"

>

If you want to print one column at a time, that will do what you ask. If you want to print the entire data frame, with numeric columns formatting this way when needed, it will take more work.

Start with ?print.data.frame, which says, in part,

This calls 'format' which formats the data frame column-by-column,

then converts to a character matrix and dispatches to the 'print'

method for matrices.

Fortunately the code for print.data.frame is fairly short and simple. Looking at it, it calls format.data.frame (also fairly short and simple), which in turn uses format(). So there does not appear to be a built in option for the formatting you want.

Some possible approaches:

1) create your own version of format.data.frame which uses prettyNum on numeric columns and format on all other types. If it appears earlier in the path than base R's format.data.frame it might be used instead.

2) create your own versions of both print.data.frame and format.data.frame, again causing it to use prettyNum on numeric columns

3) manually convert your numeric columns to character columns using prettyNum, then print that. Alignment will probably change, which you may not want, but at least you'll get nicer to read numbers.

(as an aside, I'll claim that this is an example of the power of open-source software -- if you don't like the defaults, one can make one's own version to work however is desired -- but it does take some work)

--

Don MacQueen

Lawrence Livermore National Laboratory

7000 East Ave., L-627

Livermore, CA 94550

925-423-1062

Lab cell 925-724-7509

On 9/27/18, 11:53 AM, "R-help on behalf of David Winsemius" <

[hidden email] on behalf of

[hidden email]> wrote:

> On Sep 27, 2018, at 9:35 AM, David Disabato <

[hidden email]> wrote:

>

> Hi R-help,

>

> I was wondering if it was possible for a column of a dataframe to print

> some numbers in standard notation and some in scientific notation. Say my

> column of data (i.e., dat$x) has numbers between 0 and 1 with a few numbers

> very close to 0. When using the "scipen" argument in "options," R seems to

> print all numbers of a column in scientific notation if one number in the

> column is a decimal with a starting digit smaller than the "scipen"

> argument. It is annoying that is changes ALL numbers in that column to

> scientific notation though. For example, I do want .00000000000000000001 in

> scientific notation, but I want .52 in standard form. Ideally, an example

> dataframe column would print as something like this:

>

> print(dat$x)

> .52

> .17

> .03

> 1.0e-20

>

> However, I cannot figure out how to do this. Any solutions people are aware

> of?

Perhaps cat?

> cat(x)

0.52 0.17 0.03 1e-20

>

> --

> David J. Disabato, M.A.

> Clinical Psychology Doctoral Student

> George Mason University

>

[hidden email]
>

> Email is not a secure form of communication as information and

> confidentiality cannot be guaranteed. Information provided in an email is

> not intended to be a professional service. In the case of a crisis or

> emergency situation, call 911.

>

> [[alternative HTML version deleted]]

>

> ______________________________________________

>

[hidden email] mailing list -- To UNSUBSCRIBE and more, see

>

https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide

http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.

David Winsemius

Alameda, CA, USA

'Any technology distinguishable from magic is insufficiently advanced.' -Gehm's Corollary to Clarke's Third Law

______________________________________________

[hidden email] mailing list -- To UNSUBSCRIBE and more, see

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide

http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.

______________________________________________

[hidden email] mailing list -- To UNSUBSCRIBE and more, see

https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide

http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.