Paste a character to an object
David,
Thanks, that helps me in making an example of what I am trying to do. Given the following example, I would like to run through a for loop and obtain a vector of the data only for the 100, 75, and 50 percent values. Is there a way to get this to work, either using paste as in the example below or some other method?
homerange <- list()
homerange[[1]] <- "test"
homerange[[1]]$polygons <- "test2"
homerange[[1]]$polygons$`100` <- rnorm(20,10,1)
homerange[[1]]$polygons$`90` <- rnorm(20,10,1)
homerange[[1]]$polygons$`75` <- rnorm(20,10,1)
homerange[[1]]$polygons$`50` <- rnorm(20,10,1)
xx<-c()
percent<-c("100","75","50")
for (i in 1:length(percent))
{
x<-paste(homerange[[1]]$polygons$,percent[i]) #This does not work!!!
xx<-rbind(x,xx)
}
The x<-paste(...) in this function does not work, and that is what I am stuck on. The result should be a vector the values for the "100","75",and "50" levels, but not the "90" level.
Aloha,
Tim
Tim Clark
Department of Zoology
University of Hawaii
--- On Sat, 10/3/09, David Winsemius <dwinsemius at comcast.net> wrote:
From: David Winsemius <dwinsemius at comcast.net> Subject: Re: [R] Paste a character to an object To: "Tim Clark" <mudiver1200 at yahoo.com> Cc: r-help at r-project.org Date: Saturday, October 3, 2009, 4:45 PM On Oct 3, 2009, at 10:26 PM, Tim Clark wrote:
Dear List, I can't seem to get a simple paste function to work
like I need.? I have an object I need to call but it ends in a character string.? The object is a list of home range values for a range of percent isopleths.? I need to loop through a vector of percent values, so I need to paste the percent as a character on the end of the object variable.? I have no idea why the percent is in character form, and I can't use a simple index value (homerange[[1]]$polygons[100]) because there are a variable number of isopleths that are calculated and [100] will not always correspond to "100".? So I am stuck.
What I want is: homerange[[1]]$polygons$"100" What I need is something like the following, but that
works:
percent<-c("100","75","50")
p=1
paste(homerange[[1]]$polygons$,percent[p],sep="")
Not a reproducible example, but here is some code that shows that it is possible to construct names that would otherwise be invalid due to having numerals as a first character by using back-quotes:
percent<-c("100","75","50")
p=1
paste(homerange[[1]]$polygons$,percent[p],sep="")
Error: syntax error
homerange <- list() homerange[[1]] <- "test" homerange[[1]]$polygons <- "test2"
Warning message: In homerange[[1]]$polygons <- "test2" : Coercing LHS to a list
homerange
[[1]] [[1]][[1]] [1] "test" [[1]]$polygons [1] "test2"
homerange[[1]]$polygons$`100` <- percent[1]
Warning message: In homerange[[1]]$polygons$`100` <- percent[1] : Coercing LHS to a list
homerange[[1]]$polygons$`100`
[1] "100" --David Winsemius
Thanks for the help, Tim Tim Clark Department of Zoology University of Hawaii
______________________________________________ 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.