[R] same value in column-->delete

Gustaf Rydevik gustaf.rydevik at gmail.com
Thu Mar 26 12:51:52 CET 2009


On Thu, Mar 26, 2009 at 12:15 PM, Duijvesteijn, Naomi
<Naomi.Duijvesteijn at ipg.nl> wrote:
>
>   Hi Readers,
>
>
>   I have a question.
>
>
>   I have a large dataset and want to throw away columns that have the same
>   value in the column itself and I want to know which column this was.
>
>
>   For example
>
>   > x<-data.frame(id=c(1,2,3), snp1=c("A","G",
>   "G"),snp2=c("G","G","G"),snp3=c("G","G","A"))
>
>   > x
>
>     id snp1 snp2 snp3
>
>   1  1    A    G    G
>
>   2  2    G    G    G
>
>   3  3    G    G    A
>
>
>   Now I want to know that snp2 in monomorphic (the same value for the column)
>   and after I know which column it is I want to take these columns out.
>
>
>   Thanks,
>
>   Naomi
>


Another, perhaps slightly more intuitive solution than Jim's would be
the following:

 x<-data.frame(id=c(1,2,3), snp1=c("A","G",
"G"),snp2=c("G","G","G"),snp3=c("G","G","A"))
is.monovalued<-function(df){
              sapply(df,function(x){
                            length(unique(x))==1
              })
}

monovaluedCols<-is.monovalued(x)
which(monovaluedCols)
x[!monovaluedCols]

/Gustaf
-- 
Gustaf Rydevik, M.Sci.
tel: +46(0)703 051 451
address:Essingetorget 40,112 66 Stockholm, SE
skype:gustaf_rydevik




More information about the R-help mailing list