Hi You did not provided any suitable data.
x<-sort(sample(letters[1:5], 50, rep=T)) unlist(lapply(split(x,x), function(x) (1:length(x))-1)) gives you a vector of indices from 0 to n for sorted vector x. Regards Petr > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-bounces@r- > project.org] On Behalf Of Jon Toledo > Sent: Tuesday, September 04, 2012 7:59 AM > To: r-help@r-project.org > Subject: [R] Create a function to number each repeated visit or > measurements > > > Hi dear R list members, > I am trying to create a numerical variable that tracks the > visits/entries that a subject has had. For example having a database of > repeated serial measurements that are ordered by subject and time. So I > would get a variable that says 0 for baseline visit/measurement, 1 for > the second etc. > In my case the unique identifier for each subject is AreaID Will the > following code I can number the visits as long as I create as many > lines as visits. > But there is probably a way of coding a function or maybe there is > already a function. > DUP<-rep(0,length(AreaID))DUP[2:length(DUP)]<- > sapply(2:(length(AreaID),function(x) ifelse(AreaID[x]==AreaID[x- > 1],1,DUP[x]))DUP[3:length(DUP)]<-sapply(3:( > length(AreaID),function(x) ifelse(AreaID[x]==AreaID[x-2],2,DUP[x])) > My Guess was: > AddLag<-function(x) { DUP<-c(rep(0,length(x))) for (i in > 1:(max(as.numeric(GraphArtDB$Measure))+2)){ > DUP[(i+1):length(x)]<-sapply(((i+1):length(x)),function(x) > ifelse(x[i]==x[x-i],i,DUP[x])) } return(DUP) > } > > But it didnĀ“t work. > Any suggestions? > > Thanks in advance > > J ToledoUPennUSA > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org 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.