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
> newdataset[testindex] = testset[testindex] > object 'dataset' not foundIs that really what R printed? I get > newdataset[testindex] = testset[testindex] Error in newdataset[testindex] = testset[testindex] : object 'newdataset' not found but perhaps you have a different problem. Copy and paste (and read) the error message you got. Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com> -----Original Message----- > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf > Of Brian Feeny > Sent: Saturday, December 01, 2012 8:04 PM > To: r-help at r-project.org > 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.
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.