Beginner needs help with R
Bert, your solution seems to presuppose that the programmer knows beforehand that the leading digit in the number is "0" (which in fact is clearly the case in Nabila Arbi's original query). However, the sequence might arise from some process outside of the progammer's contgrol, and may then either have a leading 0 or not.In that case, I think Jim's solution is safer! Best wishes, Ted.
On 07-Feb-2017 16:02:18 Bert Gunter wrote:
No need for sprintf(). Simply:
paste0("DQ0",seq.int(60054,60060))
[1] "DQ060054" "DQ060055" "DQ060056" "DQ060057" "DQ060058" "DQ060059" [7] "DQ060060" Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Mon, Feb 6, 2017 at 5:45 AM, 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 the leading zeros:
# 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 = "")
sequences <- read.GenBank(seq1,
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 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.
______________________________________________ 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.
------------------------------------------------- E-Mail: (Ted Harding) <Ted.Harding at wlandres.net> Date: 07-Feb-2017 Time: 16:48:41 This message was sent by XFMail