[R] assign value to multiple objects with a given ls pattern

Ivan Calandra ivan.calandra at uni-hamburg.de
Mon Feb 21 18:25:58 CET 2011


As I partially showed, I guess that the problem of assigning the value 
99 to any object in the workspace can be dealt with a more precise 
regular expression.

Maybe that would do:
ls(pattern="^a[1-9]$")
or
ls(pattern="^a[0-9]+$")

In any case, I agree that alternatives are better

Ivan


Le 2/21/2011 17:55, Ista Zahn a écrit :
> Hi Nuno,
> Yes, you can do
>
> for(i in ls(pattern="a"))
> {
>    assign(i, 99)
> }
>
> but honestly this is a bad idea. It will try to assign the value of 99
> to any object in your workspace that contains an a, which sounds
> really scary to me.
>
> Better I think to use a list:
>
> ab.list<- list(a1=1, a2=2, a3=3, a4=4, b1=3, b2=4)
> ab.list[grep("a", names(ab.list))]<- 99
>
> Or even just a named vector
>
> ab.vector<- c(a1=1, a2=2, a3=3, a4=4, b1=3, b2=4)
> ab.vector[grep("a", names(ab.vector))]<- 99
>
> Best,
> Ista
>
> On Mon, Feb 21, 2011 at 4:22 PM, Nuno Prista<nmprista at fc.ul.pt>  wrote:
>> Dear R colleagues,
>>
>> This seems pretty straight forward but I have been banging my head on this for some time and can't seem to find a solution
>>
>> suppose I have something like
>>
>> a1<-1; a2<-2; a3<-3; a4<-4; b1<-3; b2<-4
>> I would like to quickly assign to objects with a certain pattern, e.g., those in
>>
>> ls(pattern="a")
>>
>> a specific value, e.g., "99", without having to assign each object at a time.
>>
>> is there a way I can do this within a "for" cycle? I have tested several eval and parse statements but with no success.
>>
>> Regards,
>>
>> Nuno Prista
>>
>> ____________________________
>> PhD student
>> Instituto de Oceanografia
>> Faculdade de Ciências da Universidade de Lisboa
>> Campo Grande, Lisboa,
>> 1749-016 Lisboa,
>> Portugal
>>
>> ______________________________________________
>> 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.
>>
>
>

-- 
Ivan CALANDRA
PhD Student
University of Hamburg
Biozentrum Grindel und Zoologisches Museum
Abt. Säugetiere
Martin-Luther-King-Platz 3
D-20146 Hamburg, GERMANY
+49(0)40 42838 6231
ivan.calandra at uni-hamburg.de

**********
http://www.for771.uni-bonn.de
http://webapp5.rrz.uni-hamburg.de/mammals/eng/1525_8_1.php



More information about the R-help mailing list