# [R] Log plus one transformation in R

peter dalgaard pdalgd at gmail.com
Mon Dec 12 22:54:17 CET 2016

```And, for crying out loud... just try it with x = 1.234e-16 or so. One would think that the hint |x| << 1 was obvious enough.

-pd

> On 12 Dec 2016, at 18:26 , William Dunlap via R-help <r-help at r-project.org> wrote:
>
> Print more digits of the quotient or subtract one from it and you will see
> the difference:
>
>> log1p(0.000001)/log(0.000001+1) - 1
> [1] 8.22666379463044e-11
>
>
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com
>
> On Mon, Dec 12, 2016 at 8:53 AM, John Sorkin <jsorkin at grecc.umaryland.edu>
> wrote:
>
>> At the risk of being flamed . . .
>> What is the difference between log1p(x) and log(x+1)?
>> The two methods appear to give the same results:
>>> log1p(0.000001)/log(0.000001+1)
>> [1] 1
>> John
>>
>>
>> John David Sorkin M.D., Ph.D.
>> Professor of Medicine
>> Chief, Biostatistics and Informatics
>> University of Maryland School of Medicine Division of Gerontology and
>> Geriatric Medicine
>> Baltimore VA Medical Center
>> 10 North Greene Street
>> GRECC (BT/18/GR)
>> Baltimore, MD 21201-1524
>> (Phone) 410-605-7119
>> (Fax) 410-605-7913 (Please call phone number above prior to faxing)
>>
>>>>> William Dunlap via R-help <r-help at r-project.org> 12/12/16 11:38 AM >>>
>> log1p(x), in the base package computes log(1+x) accurately for small x (and
>> large).
>>
>> E.g.,
>>> options(digits=16)
>>> base::log1p(1e-14)
>> [1] 9.99999999999995e-15
>>> base::log1p(1e-14) - base::log(1+1e-14)
>> [1] 7.992778373591124e-18
>>> as.numeric(log(Rmpfr::mpfr(1,precBits=1000) + Rmpfr::mpfr(1e-14,
>> precBits=1000))) - log1p(1e-14)
>> [1] 0
>>
>>
>> Bill Dunlap
>> TIBCO Software
>> wdunlap tibco.com
>>
>> On Mon, Dec 12, 2016 at 8:23 AM, Faradj Koliev <faradj.g at gmail.com> wrote:
>>
>>> Hi all,
>>>
>>> How do I perform log(x+1) in R?
>>>
>>> log1p_trans() from the package ”scales" doesn’t seem to work for me.
>>>
>>> Best,
>>> ______________________________________________
>>> R-help at r-project.org 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.
>>
>>    [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org 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.
>>
>> *Confidentiality Statement:*
>>
>> This email message, including any attachments, is for ...{{dropped:10}}
>
> ______________________________________________
> R-help at r-project.org 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.

--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com

```