# [R] Beginner needs help with R

David Winsemius dwinsemius at comcast.net
Mon Feb 6 20:30:18 CET 2017

```> On Feb 6, 2017, at 9:08 AM, Jeff Newmiller <jdnewmil at dcn.davis.ca.us> wrote:
>
> I think it is important to point out that whenever R treats a number as a numeric (integer or double) it loses any base 10 concept of "leading zero" in that internal representation, so in this expression
>
> seq2 <- paste0("DQ", sprintf("%06d", seq(060054, 060060)))

You can do it just with sprintf (and presumably with formatC as well) if you add a leading "DQ" to the format string.:

> sprintf( "DQ%06s", seq(060054, 060060))
[1] "DQ060054" "DQ060055" "DQ060056" "DQ060057" "DQ060058" "DQ060059" "DQ060060"

--
David.

> the arguments to seq have leading zeros that are ignored by R and have nothing to do with getting the desired output. That is,  the same result can be obtained using
>
> seq2 <- paste0("DQ", sprintf("%06d", seq(60054, 60060)))
>
> or
>
> seq2 <- paste0("DQ", sprintf("%06d", seq(0060054, 00060060)))
>
> since only the zero inside the format string is key to success. (If it makes you more comfortable to put the zero there for readability that is your choice, but R ignores therm.)
>
> Also note that the paste0 function is not needed when you use sprintf:
>
> seq2 <- sprintf("DQ%06d", seq(60054, 60060))
>
> or
>
> myprefix <- "DQ"
> seq2 <- sprintf("%s%06d", myprefix,seq(60054, 60060))
>
> --
> Sent from my phone. Please excuse my brevity.
>
> On February 6, 2017 5:45:43 AM PST, jim holtman <jholtman at gmail.com> wrote:
>> You need the leading zeros, and 'numerics' just give the number without
>> leading zeros.  You can use 'sprintf' for create a character string
>> with
>>
>>> # this is using 'numeric' and drops leading zeros
>>>
>>> seq1 <- paste("DQ", seq(060054, 060060), sep = "")
>>> seq1
>> [1] "DQ60054" "DQ60055" "DQ60056" "DQ60057" "DQ60058" "DQ60059"
>> "DQ60060"
>>>
>>> # use 'sprintf' to create leading zeros
>>> seq2 <- paste0("DQ", sprintf("%06d", seq(060054, 060060)))
>>> seq2
>> [1] "DQ060054" "DQ060055" "DQ060056" "DQ060057" "DQ060058" "DQ060059"
>> "DQ060060"
>>>
>>
>>
>> Jim Holtman
>> Data Munger Guru
>>
>> What is the problem that you are trying to solve?
>> Tell me what you want to do, not how you want to do it.
>>
>> On Sun, Feb 5, 2017 at 8:50 PM, Nabila Arbi
>> <nabilaelarbi1912 at gmail.com>
>> wrote:
>>
>>> Dear R-Help Team!
>>>
>>> I have some trouble with R. It's probably nothing big, but I can't
>> find a
>>> solution.
>>> My problem is the following:
>>> I am trying to download some sequences from ncbi using the ape
>> package.
>>>
>>> seq1 <- paste("DQ", seq(060054, 060060), sep = "")
>>>
>>> seq.names = seq1,
>>> species.names = TRUE,
>>> gene.names = FALSE,
>>> as.character = TRUE)
>>>
>>> write.dna(sequences, "mysequences.fas", format = "fasta")
>>>
>>> My problem is, that R doesn't take the whole sequence number as
>> "060054"
>>> but it puts it as DQ60054 (missing the zero in the beginning, which
>> is
>>> essential).
>>>
>>> Could please tell me, how I can get R to accepting the zero in the
>>> beginning of the accession number?
>>>
>>> Thank you very much in advance and all the best!
>>>
>>> Nabila
>>>
>>>        [[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
>>> 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
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help