[R] how to create duplicated ID in multi-records per subject dataset

Jagat.K.Sheth at wellsfargo.com Jagat.K.Sheth at wellsfargo.com
Mon Dec 15 18:32:24 CET 2008


You can also try ?rep and something like

dat <- read.table(textConnection("ID   record 
1        20
.         30
.         25
2         26
.         15
3         21
"),header=TRUE,na.strings=".")

ind <- !is.na(dat$ID)
id <- dat$ID[ind]
reps <- diff(c(seq_len(nrow(dat))[ind],nrow(dat)+1)) 
dat$new.id <- rep(id,reps)
dat
  ID record new.id
1  1     20      1
2 NA     30      1
3 NA     25      1
4  2     26      2
5 NA     15      2
6  3     21      3
 

> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Zhixin Liu
> Sent: Sunday, December 14, 2008 7:57 PM
> To: r-help at r-project.org
> Subject: [R] how to create duplicated ID in multi-records per 
> subject dataset
> 
> Hi R helpers,
> 
> If I have a dataset looks like:
> ID   record 
> 1        20
> .         30
> .         25
> 2         26
> .         15
> 3         21
> 4.....................
> 
> And I want it becomes 
> ID   record 
> 1        20
> 1        30
> 1        25
> 2         26
> 2        15
> 3         21
> 4.....................
> 
> That is, I have to duplicate IDs for those with multiple 
> records. I am wondering it is possible to be done in R, and I 
> am grateful if you would like to show me the direction.
> 
> Many thanks!
> 
> Zhixin
> 
> ______________________________________________
> R-help at 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.
> 



More information about the R-help mailing list