[R] split and common variables

arun smartpink111 at yahoo.com
Wed Jun 5 17:36:39 CEST 2013


Hello,
May be this helps:
dta1<-do.call(data.frame,dta)
dta2<-dta1[complete.cases(dta1),]
dta2[,-3]<-lapply(dta2[,-3],as.character)
lstdta2<-split(dta2,dta2$place)
library(plyr)
#Some names are common in a few, but not in all the places. If you are looking for names common in 2 places, 3, places, etc...
lstNew<-lapply(2:5,function(i){x1<- combn(names(lstdta2),i);lapply(split(x1,col(x1)),function(x){x2<-paste(x,collapse="_");lst1<-lapply(lstdta2[x],`[`,-1);lst2<-join_all(lst1,by="name",type="inner");names(lst2)<-x2; colnames(lst2)[-1]<-paste("value",1:(ncol(lst2)-1),sep="");lst2}) })

 lstNew1<-lapply(lstNew,function(x) x[lapply(x,nrow)!=0])
 lstNew2<-lstNew1[lapply(lstNew1,length)!=0]
 lstNew2[[1]][1:2]
#$`2`
#  GCKT_KLOI  value1   value2
#1    P_CK24  6.0786  -1.2738
#2    P_CK29  1.2757 -13.7960
#3    P_CK29  1.2757 -34.8020
#4    P_CK32 -8.1963 -11.1280
#5    P_CK32 -8.1963 -35.9044
#
#$`3`
#  GCKT_PLRT  value1   value2
#1    P_CK33  6.2826 -14.4522
#2    P_CK33  6.2826  -9.4303
#3    P_CK30 15.3869 -23.9914
#4    P_CK30 15.3869 -11.1103
A.K.






----- Original Message -----
From: Nico Met <nicomet80 at gmail.com>
To: dcarlson at tamu.edu
Cc: R help <r-help at r-project.org>
Sent: Wednesday, June 5, 2013 10:30 AM
Subject: Re: [R] split and common variables

Dear Dr. David,

Many thanks for your answer.

Now, if I want to see if there are common "name"in those "places" , how can
I do it? So, by common I mean, it might be compared with 2, 3, 4 .... all
of them. All possible combinations

Many thanks

regards

Nico


On Mon, Jun 3, 2013 at 5:20 PM, David Carlson <dcarlson at tamu.edu> wrote:

> It may be easier if you convert the list you provided to a
> data.frame:
>
> > dta.df <- data.frame(place=dta$place, name=dta$name,
> value=dta$value)
> > dta.df
>
> Note that the last line is blank so you probably want to remove that
> and remove the blank factor levels:
>
> > dta.df <- dta.df[-nrow(dta.df),]
> > dta.df$place <- factor(dta.df$place)
> > dta.df$name <- factor(dta.df$name)
> > dta.df
>
> Now you can make a list containing separate data.frames by place
>
> > dta.df.sp <- split(dta.df, dta.df$place)
> > dta.df.sp
>
> -------------------------------------
> David L Carlson
> Associate Professor of Anthropology
> Texas A&M University
> College Station, TX 77840-4352
>
>
> -----Original Message-----
> From: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org] On Behalf Of Nico Met
> Sent: Monday, June 3, 2013 8:42 AM
> To: R help
> Subject: [R] split and common variables
>
> Dear all,
>
> I would like to split the data based on the "place" and then would
> like to
> see how many "names" were common in place with corresponding "value"
> .
>
> Please find a demo file.
>
> Thanks for your expert comment
>
> best
>
> Nico
>
> > dput(dta)
> structure(list(place = structure(c(3L, 2L, 5L, 6L, 4L, 3L, 2L,
> 5L, 6L, 4L, 2L, 5L, 6L, 4L, 2L, 5L, 6L, 4L, 2L, 3L, 2L, 5L, 6L,
> 4L, 3L, 2L, 5L, 6L, 4L, 5L, 6L, 4L, 5L, 6L, 1L), .Label = c("",
> "GCKT", "IKLI", "KLOI", "PLRT", "POIV"), class = "factor"), name =
> structure
> (c(2L,
> 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 2L, 3L, 4L, 5L, 6L,
> 7L, 8L, 9L, 10L, 11L, 12L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L,
> 11L, 12L, 12L, 1L), .Label = c("", "P_CK23", "P_CK24", "P_CK25",
> "P_CK26", "P_CK27", "P_CK28", "P_CK29", "P_CK30", "P_CK31",
> "P_CK32",
> "P_CK33"), class = "factor"), value = c(5.9464, 6.0786, -4.5155,
> 15.0241, -38.1847, -0.0861, 1.2757, -23.9914, 9.5951, -11.128,
> 6.2826, 23.5218, 20.862, 3.1626, 6.242, -20.5348, -14.0126, -13.796,
> 15.3869, -15.7409, -8.1963, -14.4522, 3.2117, -1.2738, 14.3556,
> -12.5337, 20.4308, -3.3227, -34.802, -11.1103, -9.7146, -35.9044,
> -9.4303, -28.1949, NA)), .Names = c("place", "name", "value"), class
> = "data
> .frame", row.names = c(NA,
> 35L))
> >
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>
>

    [[alternative HTML version deleted]]

______________________________________________
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