[R] A More efficient method?

Keith Alan Chamberlain Keith.Chamberlain at Colorado.EDU
Wed Jul 4 15:44:44 CEST 2007

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

[1] -1 -1 -1  1  1  1 -1 -1  1
[1] "a" "a" "a" "b" "b" "b" "a" "a" "b"

Psych Undergrad, CU Boulder (US)
RE McNair Scholar

More information about the R-help mailing list