[R] change the value of vector based on the string of its name

David Winsemius dwinsemius at comcast.net
Fri Mar 24 23:45:14 CET 2017

> On Mar 24, 2017, at 10:12 AM, Qill Bel <qillbel at gmail.com> wrote:
> Dear R-users,
> Imagine I have 3 vectors:
> *proc1<-0*
> *proc2<-0*
> *cpd<-c("proc1","proc2")*

The `cpd` vector has only character values in it, and has no relation to either the `proc1` or `proc2` vectors. If you want it refer to  them (or contain their values),  then omit the quotes. The values will not retain their names in this instance. The R names `proc`` and `proc2` will be looked up and their values places in an unnamed numeric vector. You could however make it so with:


#The quotes are not needed and so this would be equivalent"

cpd<-c( proc1=proc1, proc2=proc2)

There is a `get`-function, but teaching you how to use it to solve the problem is likely to be a disservice since it would allow you to continue using R as a macro-processor.


> How can I change the value of proc1 to 1, based on vector cpd only?
> I tried with *as.factor(cpd[1])<-1*, but it produces an error.

Doesn't make much sense to me to use assignment to a factor in this instance, but that's probably because we come from different programming backgrounds. Neither your code nor mine would have produced a factor vector. You should say in natural language what it is that you want to happen.

(Perhaps) Try this:

cpd[1] <- 1


cpd['proc1'] <- 1

> Any idea how could I achieve that?
> 	[[alternative HTML version deleted]]

And learn to post in plain text. Reading the Posting Guide will also be a good idea. As would be studying a bit longer the "Introduction to R" that is shipped with every installation.

> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.

David Winsemius
Alameda, CA, USA

More information about the R-help mailing list