[R] problems subsetting
Ivan Calandra
ivan.calandra at uni-hamburg.de
Thu Nov 18 15:52:30 CET 2010
Hi,
I got a bit lost with your explanation for your second problem. A
reproducible example would DEFINITELY help to understand what you have
and what you're trying to get.
For your first problem
subset1 <- summarystats[summarystats$Class == 1 & summarystats$Type == 1
& summarystats$Category == 1, ]
should work.
If not, maybe looking at str(summarystats) could help you figure out
what the problem is (or could be)
By the way in
summarystats<-as.data.frame(read.csv(file=f_summary))
as.data.frame() is useless since read.csv() outputs a data.frame
For your second problem, it's difficult for me to understand anything
because I don't know what summarystats$Dataset is. Could there be a
problem with factors here?
HTH,
Ivan
Le 11/18/2010 15:39, Martin Tomko a écrit :
> Dear all,
> I have searched the forums for an answer - and there is plenty of
> questions along the same line - but none of the paproaches shown
> worked to my problem:
>
> I have a data frame that I get from a csv:
>
> summarystats<-as.data.frame(read.csv(file=f_summary));
>
> where I have the columns Dataset, Class, Type, Category,..
> Problem1: I want to find a subset of this frame, based on values in
> multiple columns
> What I do currently is:
>
> subset1 <- summarystats
> subset1<-subset1[subset1$Class == 1,]
> subset1<-subset1[subset1$Type == 1,]
> subset1<-subset1[subset1$Category == 1,]
>
> Now, this works, but is UGLY! I tried using "&&" or "&" , for isntance
> : subset1<-subset1[ (subset1$Class == 1)&& (subset1$Category == 1),]
> but it returns an empty data frame.
>
> Anyway, the main problem is
> Problem2:
> I have a second data frame - a square matrix (rownames == colnames),
> distm:
>
> distm<-read.table(file=f_simmatrix, sep = ",");
> what I want is select ONLY the columns and rows entries matching the
> above subset1:
>
> subset2<-distm[subset1$Dataset,subset1$Dataset] returns a matrix of
> correct size, but with incorrect entries (established by visual
> inspection).
>
> this is the same as:
> selectedrows<-as.vector(subset1$Dataset)
> subset2<-distm[selectedrows,selectedrows]
>
> also verified using:
> rownames(subset2)%in% selectedrows
> [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> FALSE
> [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> FALSE
> [25] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> FALSE
> [37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
>
> What am I missing?
>
> Thanks
> Martin
>
> ______________________________________________
> 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.
>
--
Ivan CALANDRA
PhD Student
University of Hamburg
Biozentrum Grindel und Zoologisches Museum
Abt. Säugetiere
Martin-Luther-King-Platz 3
D-20146 Hamburg, GERMANY
+49(0)40 42838 6231
ivan.calandra at uni-hamburg.de
**********
http://www.for771.uni-bonn.de
http://webapp5.rrz.uni-hamburg.de/mammals/eng/1525_8_1.php
More information about the R-help
mailing list