[R] How to re-combine values based on an index?

arun smartpink111 at yahoo.com
Sun Dec 2 06:08:17 CET 2012


Hi,
?merge(), ?rbind(), or ?join() from library(plyr)
set.seed(5)
trainset<-data.frame(ID=1:10,col2=runif(10,0,1))
 dataset <- trainset
 trainset<-dataset[-testindex,]
testset<-dataset[testindex,]
merge(testset,trainset,by=c("ID","col2"),all=TRUE)
#   ID      col2
#1   1 0.2002145
#2   2 0.6852186
#3   3 0.9168758
#4   4 0.2843995
#5   5 0.1046501
#6   6 0.7010575
#7   7 0.5279600
#8   8 0.8079352
#9   9 0.9565001
#10 10 0.1104530

You can also do this as:
 newdataset<-data.frame(ID=rep(NA,nrow(dataset)),col2=rep(NA,nrow(dataset)))
 newdataset[testindex,]<-testset
newdataset[-testindex,]<-trainset
 head(newdataset)
#  ID      col2
#1  1 0.2002145
#2  2 0.6852186
#3  3 0.9168758
#4  4 0.2843995
#5  5 0.1046501
#6  6 0.7010575

A.K.




----- Original Message -----
From: Brian Feeny <bfeeny at mac.com>
To: r-help at r-project.org
Cc: 
Sent: Saturday, December 1, 2012 11:04 PM
Subject: [R] How to re-combine values based on an index?

I am able to split my df into two like so:

dataset <- trainset
index <- 1:nrow(dataset)
testindex <- sample(index, trunc(length(index)*30/100))
trainset <- dataset[-testindex,]
testset <- dataset[testindex,-1]

So I have the index information, how could I re-combine the data using that back into a single df?

I tried what I thought might work, but failed with:

newdataset[testindex] = testset[testindex]
  object 'dataset' not found
newdataset[-testindex] = trainset[-testindex]
  object 'dataset' not found

Brian

______________________________________________
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