Dear R helpers
I'm trying to make up some labels for plot from this vector
BndY<-seq(from = 18900,to= 19700, by = 50)
using
Ylab<-for(i in BndY) {c((paste(i," to ",i+50,"mN")))}
but the vector created is NULL
However if i use
for(i in BndY) {print(c(paste(i," to ",i+50,"mN")))}
I can see the for loop is making the labels I'm looking for but not sure on
my error in assigning them to a vector
Thanks in advance
--
View this message in context: http://r.789695.n4.nabble.com/Looping-and-paste-tp4101892p4101892.html
Sent from the R help mailing list archive at Nabble.com.
Looping and paste
12 messages · markm0705, Brad Patrick Schneid, Bert Gunter +4 more
out <- vector("list")
Ylab <- for(i in 1:length(BndY))
{
out[i] <- paste(BndY[i]," to ",BndY[i],"mN")
}
Ylab <- do.call(c, out)
markm0705 wrote
Dear R helpers
I'm trying to make up some labels for plot from this vector
BndY<-seq(from = 18900,to= 19700, by = 50)
using
Ylab<-for(i in BndY) {c((paste(i," to ",i+50,"mN")))}
but the vector created is NULL
However if i use
for(i in BndY) {print(c(paste(i," to ",i+50,"mN")))}
I can see the for loop is making the labels I'm looking for but not sure
on my error in assigning them to a vector
Thanks in advance
-- View this message in context: http://r.789695.n4.nabble.com/Looping-and-paste-tp4101892p4102066.html Sent from the R help mailing list archive at Nabble.com.
Don't do this! paste() is vectorized. paste (BndY,"to",50+seq_len(BndY), "mN", sep = " ") Cheers, Bert
On Wed, Nov 23, 2011 at 3:31 PM, B77S <bps0002 at auburn.edu> wrote:
out <- vector("list")
Ylab <- for(i in 1:length(BndY))
{
out[i] <- paste(BndY[i]," to ",BndY[i],"mN")
}
Ylab <- do.call(c, out)
markm0705 wrote
Dear R helpers
I'm trying to make up some labels for plot from this vector
BndY<-seq(from = 18900,to= 19700, by = 50)
using
Ylab<-for(i in BndY) {c((paste(i," to ",i+50,"mN")))}
but the vector created is NULL
However if i use
for(i in BndY) {print(c(paste(i," to ",i+50,"mN")))}
I can see the for loop is making the labels I'm looking for but not sure
on my error in assigning them to a vector
Thanks in advance
-- View this message in context: http://r.789695.n4.nabble.com/Looping-and-paste-tp4101892p4102066.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org mailing list 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.
Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
... and you can of course do the assignment: Bndy <- paste (BndY,"to",50+seq_len(BndY), "mN", sep = " ") "An Introduction to R" tells you about such fundamentals and should be a first read for anyone learning R. --- Bert
On Wed, Nov 23, 2011 at 4:10 PM, Bert Gunter <bgunter at gene.com> wrote:
Don't do this! ?paste() is vectorized. paste (BndY,"to",50+seq_len(BndY), "mN", sep = " ") Cheers, Bert On Wed, Nov 23, 2011 at 3:31 PM, B77S <bps0002 at auburn.edu> wrote:
out <- vector("list")
Ylab <- for(i in 1:length(BndY))
{
out[i] <- paste(BndY[i]," to ",BndY[i],"mN")
}
Ylab <- do.call(c, out)
markm0705 wrote
Dear R helpers
I'm trying to make up some labels for plot from this vector
BndY<-seq(from = 18900,to= 19700, by = 50)
using
Ylab<-for(i in BndY) {c((paste(i," to ",i+50,"mN")))}
but the vector created is NULL
However if i use
for(i in BndY) {print(c(paste(i," to ",i+50,"mN")))}
I can see the for loop is making the labels I'm looking for but not sure
on my error in assigning them to a vector
Thanks in advance
-- View this message in context: http://r.789695.n4.nabble.com/Looping-and-paste-tp4101892p4102066.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org mailing list 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.
-- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20111123/c1cd94b0/attachment.pl>
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20111123/899ffdc7/attachment.pl>
Try this instead: Ylab <- paste(BndY, BndY+50, "mN") Michael
On Wed, Nov 23, 2011 at 5:26 PM, markm0705 <markm0705 at gmail.com> wrote:
Dear R helpers
I'm trying to make up some labels for plot from this vector
BndY<-seq(from = 18900,to= 19700, by = 50)
using
Ylab<-for(i in BndY) {c((paste(i," to ",i+50,"mN")))}
but the vector created is NULL
However if i use
for(i in BndY) {print(c(paste(i," to ",i+50,"mN")))}
I can see the for loop is making the labels I'm looking for but not sure on
my error in assigning them to a vector
Thanks in advance
--
View this message in context: http://r.789695.n4.nabble.com/Looping-and-paste-tp4101892p4101892.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org mailing list 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.
Hi:
There are two good reasons why the loop solution is not efficient in
this (and related) problem(s):
(i) There is more code and less transparency;
(ii) the vectorized solution is four times faster.
Here are the two proposed functions:
# Vectorized version
m1 <- function(v) paste(v, ' to ', v + 50, ' mN', sep = '')
# Loop version:
m2 <- function(v) {
out <- rep(NA, length(v))
for(i in seq_along(v)) out[i] <- paste(v[i], ' to ', v[i] + 50,
' mN', sep = '')
out
}
BndY <- seq(from = 18900, to = 19700, by = 50)
identical(m1(BndY), m2(BndY))
[1] TRUE # Put them to the test:
system.time(replicate(10000, m1(BndY)))
user system elapsed 0.67 0.00 0.67
system.time(replicate(10000, m2(BndY)))
user system elapsed 2.67 0.00 2.67 The vectorized version is four times faster and produces the same output as the loop version. Experiments with a longer test vector (501 elements) maintained the timing ratio. Dennis
On Wed, Nov 23, 2011 at 7:00 PM, markm0705 <markm0705 at gmail.com> wrote:
Thank you On Thu, Nov 24, 2011 at 7:31 AM, B77S [via R] < ml-node+s789695n4102066h98 at n4.nabble.com> wrote:
out <- vector("list")
Ylab <- for(i in 1:length(BndY))
{
out[i] <- paste(BndY[i]," to ",BndY[i],"mN")
}
Ylab <- do.call(c, out)
?markm0705 wrote
Dear R helpers
I'm trying to make up some labels for plot from this vector
BndY<-seq(from = 18900,to= 19700, by = 50)
using
Ylab<-for(i in BndY) {c((paste(i," to ",i+50,"mN")))}
but the vector created is NULL
However if i use
for(i in BndY) {print(c(paste(i," to ",i+50,"mN")))}
I can see the for loop is making the labels I'm looking for but not sure
on my error in assigning them to a vector
Thanks in advance
------------------------------
?If you reply to this email, your message will be added to the discussion
below:
http://r.789695.n4.nabble.com/Looping-and-paste-tp4101892p4102066.html
To unsubscribe from Looping and paste, click here<http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4101892&code=bWFya20wNzA1QGdtYWlsLmNvbXw0MTAxODkyfDExNDQyODMxMDM=>
.
NAML<http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.InstantMailNamespace&breadcrumbs=instant+emails%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
-- View this message in context: http://r.789695.n4.nabble.com/Looping-and-paste-tp4101892p4102553.html Sent from the R help mailing list archive at Nabble.com. ? ? ? ?[[alternative HTML version deleted]]
______________________________________________ R-help at r-project.org mailing list 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.
It's very seldom that I disagree with Bert, but here is one time. I don't think "An Introduction to R" is a suitable first read for people with little computational experience. Better (I modestly suggest) would be: http://www.burns-stat.com/pages/Tutor/hints_R_begin.html which includes some other references. 'Hints' is imperfect and incomplete but it suffers slightly less from the curse of knowledge than a lot of other R documentation. Pat
On 24/11/2011 00:15, Bert Gunter wrote:
... and you can of course do the assignment: Bndy<- paste (BndY,"to",50+seq_len(BndY), "mN", sep = " ") "An Introduction to R" tells you about such fundamentals and should be a first read for anyone learning R. --- Bert On Wed, Nov 23, 2011 at 4:10 PM, Bert Gunter<bgunter at gene.com> wrote:
Don't do this! paste() is vectorized. paste (BndY,"to",50+seq_len(BndY), "mN", sep = " ") Cheers, Bert On Wed, Nov 23, 2011 at 3:31 PM, B77S<bps0002 at auburn.edu> wrote:
out<- vector("list")
Ylab<- for(i in 1:length(BndY))
{
out[i]<- paste(BndY[i]," to ",BndY[i],"mN")
}
Ylab<- do.call(c, out)
markm0705 wrote
Dear R helpers
I'm trying to make up some labels for plot from this vector
BndY<-seq(from = 18900,to= 19700, by = 50)
using
Ylab<-for(i in BndY) {c((paste(i," to ",i+50,"mN")))}
but the vector created is NULL
However if i use
for(i in BndY) {print(c(paste(i," to ",i+50,"mN")))}
I can see the for loop is making the labels I'm looking for but not sure
on my error in assigning them to a vector
Thanks in advance
-- View this message in context: http://r.789695.n4.nabble.com/Looping-and-paste-tp4101892p4102066.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org mailing list 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.
-- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
Patrick Burns pburns at pburns.seanet.com twitter: @portfolioprobe http://www.portfolioprobe.com/blog http://www.burns-stat.com (home of 'Some hints for the R beginner' and 'The R Inferno')
On Thu, Nov 24, 2011 at 9:27 AM, Patrick Burns <pburns at pburns.seanet.com> wrote:
It's very seldom that I disagree with Bert, but here is one time. I don't think "An Introduction to R" is a suitable first read for people with little computational experience.
I must agree with Patrick here. The 'Intro to R' may be appropriate for someone already versed in statistics and/or programming, but it is hardly useful as a first read for the neophytes.
Better (I modestly suggest) would be: http://www.burns-stat.com/pages/Tutor/hints_R_begin.html
To chip in, the first two chapters of Fox and Weisberg (2011) make for an excellent introduction to R programming. It's gentle, but also covers many of the difficulties and misunderstandings that one would encounter in R. Regards Liviu
which includes some other references. 'Hints' is imperfect and incomplete but it suffers slightly less from the curse of knowledge than a lot of other R documentation. Pat On 24/11/2011 00:15, Bert Gunter wrote:
... and you can of course do the assignment: Bndy<- ?paste (BndY,"to",50+seq_len(BndY), "mN", sep = " ") "An Introduction to R" tells you about such fundamentals and should be a first read for anyone learning R. --- Bert On Wed, Nov 23, 2011 at 4:10 PM, Bert Gunter<bgunter at gene.com> ?wrote:
Don't do this! ?paste() is vectorized. paste (BndY,"to",50+seq_len(BndY), "mN", sep = " ") Cheers, Bert On Wed, Nov 23, 2011 at 3:31 PM, B77S<bps0002 at auburn.edu> ?wrote:
out<- vector("list")
Ylab<- for(i in 1:length(BndY))
{
out[i]<- paste(BndY[i]," to ",BndY[i],"mN")
}
Ylab<- do.call(c, out)
markm0705 wrote
Dear R helpers
I'm trying to make up some labels for plot from this vector
BndY<-seq(from = 18900,to= 19700, by = 50)
using
Ylab<-for(i in BndY) {c((paste(i," to ",i+50,"mN")))}
but the vector created is NULL
However if i use
for(i in BndY) {print(c(paste(i," to ",i+50,"mN")))}
I can see the for loop is making the labels I'm looking for but not
sure
on my error in assigning them to a vector
Thanks in advance
-- View this message in context: http://r.789695.n4.nabble.com/Looping-and-paste-tp4101892p4102066.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org mailing list 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.
-- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
-- Patrick Burns pburns at pburns.seanet.com twitter: @portfolioprobe http://www.portfolioprobe.com/blog http://www.burns-stat.com (home of 'Some hints for the R beginner' and 'The R Inferno')
______________________________________________ R-help at r-project.org mailing list 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.
Do you know how to read? http://www.alienetworks.com/srtest.cfm http://goodies.xfce.org/projects/applications/xfce4-dict#speed-reader Do you know how to write? http://garbl.home.comcast.net/~garbl/stylemanual/e.htm#e-mail
Pat: 1. Thank you for this. Having not read your tutorial, but based on what I know of your other efforts, I am sure that you are correct. Is there a link to this on CRAN somewhere so I can refer to it in future (too lazy to search myself)? 2. Thank you also for your continuing contributions to R documentation. I know this takes a lot of work and you do it well. Would that more R learners would read them -- there would be a lot less "RTFM" type queries on r-help. Best, Bert On Thu, Nov 24, 2011 at 12:27 AM, Patrick Burns
<pburns at pburns.seanet.com> wrote:
It's very seldom that I disagree with Bert, but here is one time. I don't think "An Introduction to R" is a suitable first read for people with little computational experience. Better (I modestly suggest) would be: http://www.burns-stat.com/pages/Tutor/hints_R_begin.html which includes some other references. 'Hints' is imperfect and incomplete but it suffers slightly less from the curse of knowledge than a lot of other R documentation. Pat On 24/11/2011 00:15, Bert Gunter wrote:
... and you can of course do the assignment: Bndy<- ?paste (BndY,"to",50+seq_len(BndY), "mN", sep = " ") "An Introduction to R" tells you about such fundamentals and should be a first read for anyone learning R. --- Bert On Wed, Nov 23, 2011 at 4:10 PM, Bert Gunter<bgunter at gene.com> ?wrote:
Don't do this! ?paste() is vectorized. paste (BndY,"to",50+seq_len(BndY), "mN", sep = " ") Cheers, Bert On Wed, Nov 23, 2011 at 3:31 PM, B77S<bps0002 at auburn.edu> ?wrote:
out<- vector("list")
Ylab<- for(i in 1:length(BndY))
{
out[i]<- paste(BndY[i]," to ",BndY[i],"mN")
}
Ylab<- do.call(c, out)
markm0705 wrote
Dear R helpers
I'm trying to make up some labels for plot from this vector
BndY<-seq(from = 18900,to= 19700, by = 50)
using
Ylab<-for(i in BndY) {c((paste(i," to ",i+50,"mN")))}
but the vector created is NULL
However if i use
for(i in BndY) {print(c(paste(i," to ",i+50,"mN")))}
I can see the for loop is making the labels I'm looking for but not
sure
on my error in assigning them to a vector
Thanks in advance
-- View this message in context: http://r.789695.n4.nabble.com/Looping-and-paste-tp4101892p4102066.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org mailing list 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.
-- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
-- Patrick Burns pburns at pburns.seanet.com twitter: @portfolioprobe http://www.portfolioprobe.com/blog http://www.burns-stat.com (home of 'Some hints for the R beginner' and 'The R Inferno')
______________________________________________ R-help at r-project.org mailing list 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.
Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
Bert, Your laziness is well founded -- it is not on CRAN, you have to go all the way over to another website. And thanks for the kind words (even though we Europeans are free to be ingrates today). Pat
On 24/11/2011 14:23, Bert Gunter wrote:
Pat: 1. Thank you for this. Having not read your tutorial, but based on what I know of your other efforts, I am sure that you are correct. Is there a link to this on CRAN somewhere so I can refer to it in future (too lazy to search myself)? 2. Thank you also for your continuing contributions to R documentation. I know this takes a lot of work and you do it well. Would that more R learners would read them -- there would be a lot less "RTFM" type queries on r-help. Best, Bert On Thu, Nov 24, 2011 at 12:27 AM, Patrick Burns <pburns at pburns.seanet.com> wrote:
It's very seldom that I disagree with Bert, but here is one time. I don't think "An Introduction to R" is a suitable first read for people with little computational experience. Better (I modestly suggest) would be: http://www.burns-stat.com/pages/Tutor/hints_R_begin.html which includes some other references. 'Hints' is imperfect and incomplete but it suffers slightly less from the curse of knowledge than a lot of other R documentation. Pat On 24/11/2011 00:15, Bert Gunter wrote:
... and you can of course do the assignment: Bndy<- paste (BndY,"to",50+seq_len(BndY), "mN", sep = " ") "An Introduction to R" tells you about such fundamentals and should be a first read for anyone learning R. --- Bert On Wed, Nov 23, 2011 at 4:10 PM, Bert Gunter<bgunter at gene.com> wrote:
Don't do this! paste() is vectorized. paste (BndY,"to",50+seq_len(BndY), "mN", sep = " ") Cheers, Bert On Wed, Nov 23, 2011 at 3:31 PM, B77S<bps0002 at auburn.edu> wrote:
out<- vector("list")
Ylab<- for(i in 1:length(BndY))
{
out[i]<- paste(BndY[i]," to ",BndY[i],"mN")
}
Ylab<- do.call(c, out)
markm0705 wrote
Dear R helpers
I'm trying to make up some labels for plot from this vector
BndY<-seq(from = 18900,to= 19700, by = 50)
using
Ylab<-for(i in BndY) {c((paste(i," to ",i+50,"mN")))}
but the vector created is NULL
However if i use
for(i in BndY) {print(c(paste(i," to ",i+50,"mN")))}
I can see the for loop is making the labels I'm looking for but not
sure
on my error in assigning them to a vector
Thanks in advance
-- View this message in context: http://r.789695.n4.nabble.com/Looping-and-paste-tp4101892p4102066.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org mailing list 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.
-- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
-- Patrick Burns pburns at pburns.seanet.com twitter: @portfolioprobe http://www.portfolioprobe.com/blog http://www.burns-stat.com (home of 'Some hints for the R beginner' and 'The R Inferno')
______________________________________________ R-help at r-project.org mailing list 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.
Patrick Burns pburns at pburns.seanet.com twitter: @portfolioprobe http://www.portfolioprobe.com/blog http://www.burns-stat.com (home of 'Some hints for the R beginner' and 'The R Inferno')