Re: [R] Extracting variables with a given prefix in the parent environment
On 20/10/2008 2:06 AM, erwann rogard wrote: hi, get.vars.name.prefix-function(prefix){ result-list() len-nchar(prefix) var.names-ls(name=1,pattern=prefix) #name=1 probably wrong option print(var.names) for(i in 1:length(var.names)){ name-var.names[i] field-substr(name,len+1,nchar(name)) result[[field]]-get(name) } result } for example x.1-1 x.2-2 get.vars.name.prefix(x.) should return 1,2 this does not work if i call if from within another function: g-function(){ x.1-1 x.2-2 get.vars.name.prefix(x.) # should return 1,2, nothing else } i would like the environment specified within ls(...) to be that of the body of the function that calls get.vars.name.prefix. apparently name=1 is probably not the right option. Use ls(name=parent.frame(), pattern=...) And be careful about the pattern: it's a regular expression, so you would need to start with a caret ^ to guarantee that it occurs at the start of the name. Duncan Murdoch __ R-help@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.
Re: [R] Extracting variables with a given prefix in the parent environment
Try this: Using 'envir' argument, in ls and get function: get.vars.name.prefix-function(prefix, envir = parent.frame()){ result-list() len-nchar(prefix) var.names-ls(envir = envir,pattern=prefix) print(var.names) for(i in 1:length(var.names)){ name-var.names[i] field-substr(name,len+1,nchar(name)) result[[field]]-get(name, envir = envir) } result } On Mon, Oct 20, 2008 at 4:06 AM, erwann rogard [EMAIL PROTECTED]wrote: hi, get.vars.name.prefix-function(prefix){ result-list() len-nchar(prefix) var.names-ls(name=1,pattern=prefix) #name=1 probably wrong option print(var.names) for(i in 1:length(var.names)){ name-var.names[i] field-substr(name,len+1,nchar(name)) result[[field]]-get(name) } result } for example x.1-1 x.2-2 get.vars.name.prefix(x.) should return 1,2 this does not work if i call if from within another function: g-function(){ x.1-1 x.2-2 get.vars.name.prefix(x.) # should return 1,2, nothing else } i would like the environment specified within ls(...) to be that of the body of the function that calls get.vars.name.prefix. apparently name=1 is probably not the right option. thanks. [[alternative HTML version deleted]] __ R-help@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. -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40 S 49° 16' 22 O [[alternative HTML version deleted]] __ R-help@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.
Re: [R] Extracting variables with a given prefix in the parent environment
Thank you all for your answers. On Mon, Oct 20, 2008 at 6:32 AM, Henrique Dallazuanna [EMAIL PROTECTED]wrote: Try this: Using 'envir' argument, in ls and get function: get.vars.name.prefix-function(prefix, envir = parent.frame()){ result-list() len-nchar(prefix) var.names-ls(envir = envir,pattern=prefix) print(var.names) for(i in 1:length(var.names)){ name-var.names[i] field-substr(name,len+1,nchar(name)) result[[field]]-get(name, envir = envir) } result } On Mon, Oct 20, 2008 at 4:06 AM, erwann rogard [EMAIL PROTECTED]wrote: hi, get.vars.name.prefix-function(prefix){ result-list() len-nchar(prefix) var.names-ls(name=1,pattern=prefix) #name=1 probably wrong option print(var.names) for(i in 1:length(var.names)){ name-var.names[i] field-substr(name,len+1,nchar(name)) result[[field]]-get(name) } result } for example x.1-1 x.2-2 get.vars.name.prefix(x.) should return 1,2 this does not work if i call if from within another function: g-function(){ x.1-1 x.2-2 get.vars.name.prefix(x.) # should return 1,2, nothing else } i would like the environment specified within ls(...) to be that of the body of the function that calls get.vars.name.prefix. apparently name=1 is probably not the right option. thanks. [[alternative HTML version deleted]] __ R-help@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. -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40 S 49° 16' 22 O [[alternative HTML version deleted]] __ R-help@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.