# your data VAS<-c("Green","Green","Black","Green","White","Yellow","Yellow","Black","Green","Black") # declare the new vector New_Vector<-numeric(length(VAS)) # brute force: New_Vector[VAS=="White"]<-1 New_Vector[VAS=="Yellow"]<-2 New_Vector[VAS=="Green"]<-3 New_Vector[VAS=="Black"]<-4 # a little more subtle cols<-c("White","Yellow","Green","Black") for (i in 1:length(cols)) New_Vector[VAS==cols[i]]<-i # and a general approach (that may give a different indexing, but can be used for any array) for (i in 1:length(unique(VAS))) New_Vector[VAS==unique(VAS)[i]]<-i cbind(1:length(unique(VAS)),unique(VAS)) # a decoding key for the color index -- View this message in context: http://r.789695.n4.nabble.com/Help-with-vectors-tp4711801p4711895.html Sent from the R help mailing list archive at Nabble.com.
On Sat, Sep 05, 2015 at 02:14:18PM -0700, Dan D wrote:> # your data > VAS<-c("Green","Green","Black","Green","White","Yellow","Yellow","Black","Green","Black") > > # declare the new vector > New_Vector<-numeric(length(VAS)) > > # brute force: > New_Vector[VAS=="White"]<-1 > New_Vector[VAS=="Yellow"]<-2 > New_Vector[VAS=="Green"]<-3 > New_Vector[VAS=="Black"]<-4 > > # a little more subtle > cols<-c("White","Yellow","Green","Black") > for (i in 1:length(cols)) New_Vector[VAS==cols[i]]<-i > > # and a general approach (that may give a different indexing, but can be > used for any array) > for (i in 1:length(unique(VAS))) New_Vector[VAS==unique(VAS)[i]]<-i > cbind(1:length(unique(VAS)),unique(VAS)) # a decoding key for the color > index ># how about: rank( VAS, ties.method='min') Regards
Great! -- View this message in context: http://r.789695.n4.nabble.com/Help-with-vectors-tp4711801p4712023.html Sent from the R help mailing list archive at Nabble.com.
how about this: match(VAS,unique(VAS)) #or, preserving given order match(VAS,c("White","Yellow","Green","Black")) Cheers. Am 05.09.2015 um 23:14 schrieb Dan D:> # your data > VAS<-c("Green","Green","Black","Green","White","Yellow","Yellow","Black","Green","Black") > > # declare the new vector > New_Vector<-numeric(length(VAS)) > > # brute force: > New_Vector[VAS=="White"]<-1 > New_Vector[VAS=="Yellow"]<-2 > New_Vector[VAS=="Green"]<-3 > New_Vector[VAS=="Black"]<-4 > > # a little more subtle > cols<-c("White","Yellow","Green","Black") > for (i in 1:length(cols)) New_Vector[VAS==cols[i]]<-i > > # and a general approach (that may give a different indexing, but can be > used for any array) > for (i in 1:length(unique(VAS))) New_Vector[VAS==unique(VAS)[i]]<-i > cbind(1:length(unique(VAS)),unique(VAS)) # a decoding key for the color > index > > > > > -- > View this message in context: http://r.789695.n4.nabble.com/Help-with-vectors-tp4711801p4711895.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. >-- Eik Vettorazzi Department of Medical Biometry and Epidemiology University Medical Center Hamburg-Eppendorf Martinistr. 52 20246 Hamburg T ++49/40/7410-58243 F ++49/40/7410-57790 -- _____________________________________________________________________ Universit?tsklinikum Hamburg-Eppendorf; K?rperschaft des ?ffentlichen Rechts; Gerichtsstand: Hamburg | www.uke.de Vorstandsmitglieder: Prof. Dr. Burkhard G?ke (Vorsitzender), Prof. Dr. Dr. Uwe Koch-Gromus, Joachim Pr?l?, Rainer Schoppik _____________________________________________________________________ SAVE PAPER - THINK BEFORE PRINTING
c( as.factor( VAS)) On Sat, Sep 05, 2015 at 02:14:18PM -0700, Dan D wrote:> # your data > VAS<-c("Green","Green","Black","Green","White","Yellow","Yellow","Black","Green","Black") > > # declare the new vector > New_Vector<-numeric(length(VAS)) > > # brute force: > New_Vector[VAS=="White"]<-1 > New_Vector[VAS=="Yellow"]<-2 > New_Vector[VAS=="Green"]<-3 > New_Vector[VAS=="Black"]<-4 > > # a little more subtle > cols<-c("White","Yellow","Green","Black") > for (i in 1:length(cols)) New_Vector[VAS==cols[i]]<-i > > # and a general approach (that may give a different indexing, but can be > used for any array) > for (i in 1:length(unique(VAS))) New_Vector[VAS==unique(VAS)[i]]<-i > cbind(1:length(unique(VAS)),unique(VAS)) # a decoding key for the color > index > > > > > -- > View this message in context: http://r.789695.n4.nabble.com/Help-with-vectors-tp4711801p4711895.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. >
VAS<-c("Green","Green","Black","Green","White","Yellow","Yellow","Black","Green","Black") c(factor(VAS)) # to give integer indexing to the colors --- This is very nice, Frank. And it can be easily adjusted to match the original criterion that the numbers match the order of appearance of the colors in the original vector: c(factor(VAS,levels=unique(VAS))) -- View this message in context: http://r.789695.n4.nabble.com/Help-with-vectors-tp4711801p4712061.html Sent from the R help mailing list archive at Nabble.com.
Just for fun:> colSums( outer( VAS, VAS, '<'))[1] 3 3 0 3 7 8 8 0 3 0 On Sat, Sep 05, 2015 at 02:14:18PM -0700, Dan D wrote:> # your data > VAS<-c("Green","Green","Black","Green","White","Yellow","Yellow","Black","Green","Black") > > # declare the new vector > New_Vector<-numeric(length(VAS)) > > # brute force: > New_Vector[VAS=="White"]<-1 > New_Vector[VAS=="Yellow"]<-2 > New_Vector[VAS=="Green"]<-3 > New_Vector[VAS=="Black"]<-4 > > # a little more subtle > cols<-c("White","Yellow","Green","Black") > for (i in 1:length(cols)) New_Vector[VAS==cols[i]]<-i > > # and a general approach (that may give a different indexing, but can be > used for any array) > for (i in 1:length(unique(VAS))) New_Vector[VAS==unique(VAS)[i]]<-i > cbind(1:length(unique(VAS)),unique(VAS)) # a decoding key for the color > index > > > > > -- > View this message in context: http://r.789695.n4.nabble.com/Help-with-vectors-tp4711801p4711895.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. >
On 10/09/15 06:30, Frank Schwidom wrote:> c( as.factor( VAS)) > > On Sat, Sep 05, 2015 at 02:14:18PM -0700, Dan D wrote: >> # your data >> VAS<-c("Green","Green","Black","Green","White","Yellow","Yellow", >> "Black","Green","Black")<SNIP> Better: as.numeric(factor(VAS)) See fortune(185). cheers, Rolf Turner -- Technical Editor ANZJS Department of Statistics University of Auckland Phone: +64-9-373-7599 ext. 88276