[R] how to join two arrays using their column names intersection
BXC (Bendix Carstensen)
bxc at steno.dk
Wed Jan 31 13:18:50 CET 2007
Here is a workable solution:
df1 <- data.frame(ar1)
df2 <- data.frame(ar2)
cmn <- intersect(names(df1),names(df2))
rbind(df1[,cmn],df2[,cmn])
Best
Bendix
______________________________________________
Bendix Carstensen
Senior Statistician
Steno Diabetes Center
Niels Steensens Vej 2-4
DK-2820 Gentofte
Denmark
+45 44 43 87 38 (direct)
+45 30 75 87 38 (mobile)
+45 44 43 73 13 (fax)
bxc at steno.dk http://www.biostat.ku.dk/~bxc
______________________________________________
> -----Original Message-----
> From: Federico Abascal [mailto:fabascal at cnb.uam.es]
> Sent: Tuesday, January 30, 2007 12:28 PM
> To: r-help at stat.math.ethz.ch
> Subject: [R] how to join two arrays using their column names
> intersection
>
> Dear all,
>
> I have a problem that may be someone of you can help. I am a
> newbie and do not find how to do it in manuals.
>
> I have two arrays, for example:
>
> ar1 <- array(data=c(1:16),dim=c(4,4))
> ar2 <- array(data=c(1:16),dim=c(4,4))
> colnames(ar1)<-c("A","B","D","E")
> colnames(ar2)<-c("C","A","E","B")
>
> > ar1
> A B D E
> [1,] 1 5 9 13
> [2,] 2 6 10 14
> [3,] 3 7 11 15
> [4,] 4 8 12 16
> > ar2
> C A E B
> [1,] 1 5 9 13
> [2,] 2 6 10 14
> [3,] 3 7 11 15
> [4,] 4 8 12 16
>
>
> I would like to join both arrays only for the columns present in both
> ar1 and ar2 (the intersection). I would like to obtain this:
> A B E
> [1,] 1 5 13
> [2,] 2 6 14
> [3,] 3 7 15
> [4,] 4 8 16
> [5,] 5 13 9
> [6,] 6 14 10
> [7,] 7 15 11
> [8,] 8 16 12
>
> (rows 5-8 correspond to ar2)
>
> I have tried several things but I am unable to accomplish it.
> Any experienced user could give me some advice, please?
>
> I have another question: how can I sort the columns of an
> array according to its column names (for ar2, change CAEB to ABCE)?
>
> Thanks in advance!
> Federico
>
>
>
More information about the R-help
mailing list