C1 <- rep(-1, length(Cat)) C1[Cat == "b"]] <- 1 b
On Jul 4, 2007, at 9:44 AM, Keith Alan Chamberlain wrote: > Dear Rhelpers, > > Is there a faster way than below to set a vector based on values from > another vector? I'd like to call a pre-existing function for this, > but one > which can also handle an arbitrarily large number of categories. > Any ideas? > > Cat=c('a','a','a','b','b','b','a','a','b') # Categorical variable > C1=vector(length=length(Cat)) # New vector for numeric values > > # Cycle through each column and set C1 to corresponding value of Cat. > for(i in 1:length(C1)){ > if(Cat[i]=='a') C1[i]=-1 else C1[i]=1 > } > > C1 > [1] -1 -1 -1 1 1 1 -1 -1 1 > Cat > [1] "a" "a" "a" "b" "b" "b" "a" "a" "b" > > Sincerely, > KeithC. > Psych Undergrad, CU Boulder (US) > RE McNair Scholar > > ______________________________________________ > R-help@stat.math.ethz.ch 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. ______________________________________________ R-help@stat.math.ethz.ch 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.