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

Berend Hasselman bhh at xs4all.nl
Sun Dec 2 06:34:47 CET 2012


On 02-12-2012, at 06:06, Brian Feeny wrote:

> Thank you for your response,  here is a better example of what I am trying to do:
> 
> data(iris)
> index_setosa <- which(iris$Species == "setosa")
> iris_setosa <- data.frame()
> iris_setosa[index_setosa,] <-iris[index_setosa,]
> iris_others <- data.frame()
> iris_others[-index_setosa,] <- iris[-index_setosa,]
> 

Change you example to make it actually do something

data(iris)
index_setosa <- which(iris$Species == "setosa")
iris_setosa <-iris[index_setosa,]
head(iris_setosa)

# iris_others <- data.frame()
# iris_others[-index_setosa,] <- iris[-index_setosa,]
iris_others <- iris[-index_setosa,]
head(iris_others)
tail(iris_others)

The head() and tail() calls are for checking.
Combine the two like this

z <- rbind(iris_setosa,iris_others)
head(z)
tail(z)

Berend

> So the idea would be that iris_setosa is a dataframe of size 150, with 50 observations of setosa,
> using their original same indices, and 100 observations of NA.  Likewise iris_others would be
> 100 observations of species besides setosa, using their original indices, and there would be 50 NA's.
> 
> The above doesn't work.  When I execute it, I am left with iris_setosa having 0 columns, I wish it to have all 
> the original columns of iris.
> 
> That said, once I get past the above (being able to split them out and keep original indices), I wish to be able to combine
> iris_setosa and iris_others so that iris_combined is a data frame with no NA's and all the original data.
> 
> Does this make sense?  So I am basically taking a dataframe, splitting it based on some criteria, and working on the two
> split dataframes separately, and then I wish to recombine.
> 
> Brian
> 
> 
> So at this point, I have iris_setosa a dataframe of size 
> On Dec 1, 2012, at 11:34 PM, William Dunlap wrote:
> 
>>> newdataset[testindex] = testset[testindex]
>>> object 'dataset' not found
>> 
>> Is 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.
> 
> ______________________________________________
> 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