[R] assign a value to an element

John Kane jrkrideau at inbox.com
Mon Mar 19 13:57:28 CET 2012


I am not sure that I understand but does something like this do what you want?

ec<-1:10
vec[vec==4] <- 100

vec <- 1:10
vec[ vec==4 | vec==8] <- 100

vec <- 1:10
aa <- 50
vec[vec==4] <- aa


John Kane
Kingston ON Canada


> -----Original Message-----
> From: marc_grt at yahoo.fr
> Sent: Sun, 18 Mar 2012 18:24:34 +0000 (GMT)
> To: r-help at r-project.org
> Subject: [R] assign a value to an element
> 
> Assign can be used to set a value to a variable that has name as a value
> of another variable. Example:
> 
>> name<-"essai"
>> assign(name, "plouf")
>> essai
> [1] "plouf"
> 
> OK.
> But how to do the same when it is only an element of a vector, data frame
> and so on that must be changed.
> 
>> vec<-1:10
>> vec
>  [1]  1  2  3  4  5  6  7  8  9 10
>> vec[4]
> [1] 4
>> name<-"vec[4]"
>> assign(name, 100)
>> vec
>  [1]  1  2  3  4  5  6  7  8  9 10
> 
> The reason is probably here (from help of assign):
> assign does not dispatch assignment methods, so it cannot be used to set
> elements of vectors, names, attributes, etc.
> 
> 
> I have found this solution:
>> eval(parse(text=paste(name, "<-100", sep="")))
>> vec
>  [1]   1   2   3 100   5   6   7   8   9  10
> 
> Is-it the only way ? It is not very elegant !
> 
> Thanks a lot
> 
> Marc
> 
> __________________________________________________________
> Marc Girondot, Pr
> 
> Laboratoire Ecologie, Systimatique et Evolution
> Equipe de Conservation des Populations et des Communautis
> CNRS, AgroParisTech et Universiti Paris-Sud 11 , UMR 8079
> Bbtiment 362
> 91405 Orsay Cedex, France
> 
> Tel:  33 1 (0)1.69.15.72.30   Fax: 33 1 (0)1.69.15.73.53
> e-mail: marc.girondot at u-psud.fr
> Web: http://www.ese.u-psud.fr/epc/conservation/Marc.html

____________________________________________________________
FREE 3D MARINE AQUARIUM SCREENSAVER - Watch dolphins, sharks & orcas on your desktop!



More information about the R-help mailing list