Message-ID: <1367950203.86734.YahooMailNeo@web142605.mail.bf1.yahoo.com>
Date: 2013-05-07T18:10:03Z
From: arun
Subject: create unique ID for each group
In-Reply-To: <CAAvu=bm+j3zAnDp0mOceJn4OVWxwsCnbzBucwop2aP6Jkve52A@mail.gmail.com>
Hi,
Try this:
dat1<- read.table(text="
ObsNumber???? ID????????? Weight
???? 1???????????????? 0001???????? 12
???? 2???????????????? 0001????????? 13
???? 3???????????????? 0001?????????? 14
???? 4????????????????? 0002???????? 16
????? 5???????????????? 0002???????? 17
",sep="",header=TRUE,colClass=c("numeric","character","numeric"))
dat2<- read.table(text="
ID?????????????? Height
0001??????????? 3.2
0001???????????? 2.6
0001???????????? 3.2
0002???????????? 2.2
0002????????????? 2.6
",sep="",header=TRUE,colClass=c("character","numeric"))
dat1$UniqueID<-with(dat1,as.character(interaction(ID,ObsNumber,sep="_")))
?dat2$UniqueID<-with(dat2,as.character(interaction(ID,rownames(dat2),sep="_")))
?dat2
#??? ID Height UniqueID
#1 0001??? 3.2?? 0001_1
#2 0001??? 2.6?? 0001_2
#3 0001??? 3.2?? 0001_3
#4 0002??? 2.2?? 0002_4
#5 0002??? 2.6?? 0002_5
A.K.
----- Original Message -----
From: Ye Lin <yelin at lbl.gov>
To: R help <r-help at r-project.org>
Cc:
Sent: Tuesday, May 7, 2013 1:54 PM
Subject: [R] create unique ID for each group
Hey All,
I have a dataset(dat1) like this:
ObsNumber? ? ID? ? ? ? ? Weight
? ? 1? ? ? ? ? ? ? ? 0001? ? ? ? 12
? ? 2? ? ? ? ? ? ? ? 0001? ? ? ? ? 13
? ? 3? ? ? ? ? ? ? ? 0001? ? ? ? ? 14
? ? 4? ? ? ? ? ? ? ? ? 0002? ? ? ? 16
? ? ? 5? ? ? ? ? ? ? ? 0002? ? ? ? 17
And another dataset(dat2) like this:
ID? ? ? ? ? ? ? Height
0001? ? ? ? ? ? 3.2
0001? ? ? ? ? ? 2.6
0001? ? ? ? ? ? 3.2
0002? ? ? ? ? ? 2.2
0002? ? ? ? ? ? ? 2.6
I want to merge dat1 and dat2 based on "ID" in order, I know "match" only
returns the first match it finds. So I am thinking create unique ID col in
dat2 and dat2, then merge. But I dont know how to do that so it can be like
this:
dat1:
ObsNumber? ? ID? ? ? ? ? Weight? UniqueID
? ? 1? ? ? ? ? ? ? ? 0001? ? ? ? 12? ? ? ? 0001_1
? ? 2? ? ? ? ? ? ? ? 0001? ? ? ? ? 13? ? ? ? 0001_2
? ? 3? ? ? ? ? ? ? ? 0001? ? ? ? ? 14? ? ? 0001_3
? ? 4? ? ? ? ? ? ? ? ? 0002? ? ? ? 16? ? ? ? 0002_1
? ? ? 5? ? ? ? ? ? ? ? 0002? ? ? ? 17? ? ? ? 0002_1
dat2:
ID? ? ? ? ? ? ? Height? UniqueID
0001? ? ? ? ? ? 3.2? ? ? ? ? 0001_1
0001? ? ? ? ? ? 2.6? ? ? ? 0001_2
0001? ? ? ? ? ? 3.2? ? ? ? 0001_3
0002? ? ? ? ? ? 2.2? ? ? ? 0002_1
0002? ? ? ? ? ? ? 2.6? ? ? ? 0002_2
Or if it is possible to merge dat1 and dat2 by matching "ID" but return the
match in order that would be great!
Thanks for your help!
??? [[alternative HTML version deleted]]
______________________________________________
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.