Skip to content
Back to formatted view

Raw Message

Message-ID: <1354892454.24674.YahooMailNeo@web142606.mail.bf1.yahoo.com>
Date: 2012-12-07T15:00:54Z
From: arun
Subject: how to add a column from another dataset with "merge"
In-Reply-To: <1354889562358-4652486.post@n4.nabble.com>

Hi,
You could use sort=FALSE in ?merge()
d1<-data.frame(id=c(9,8,6,5,4,3,1))
d2<-data.frame(id=c(9,8,6),age=c(46,56,52))
?d<-merge(d1,d2,all.x=TRUE,sort=FALSE)
#or
library(plyr)
join(d1,d2,by="id",type="full")
#? id age
#1? 9? 46
#2? 8? 56
#3? 6? 52
#4? 5? NA
#5? 4? NA
#6? 3? NA
#7? 1? NA
A.K.

----- Original Message -----
From: Pete Brecknock <Peter.Brecknock at bp.com>
To: r-help at r-project.org
Cc: 
Sent: Friday, December 7, 2012 9:12 AM
Subject: Re: [R] how to add a column from another dataset with "merge"

kiotoqq wrote
> I want to add a shorter column to my dataset with the function "merge", 
> it
> should be filled with NAs wo be as long as the other colums, like this:
> 
> id? ? age
> 9? ? 46
> 8? ? 56
> 6?  52
> 5?  NA
> 4?  NA
> 3? NA
> 1? NA
> 
> i did this:
> pa1 <- merge(pa1, an1, by="mergeid")
> 
> and it says "'by' must specify uniquely valid column(s)"

how about ...

#Data
d1<-data.frame(id=c(9,8,6,4,4,3,1))
d2<-data.frame(id=c(9,8,6),age=c(46,56,52))

# Left Merge
d<-merge(d1,d2,all.x=TRUE)

# Reorder
d[order(d$id,decreasing=TRUE),]

HTH

Pete



--
View this message in context: http://r.789695.n4.nabble.com/how-to-add-a-column-from-another-dataset-with-merge-tp4652482p4652486.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
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.