Hi Antje,

Try this:

merge(merge(mylist[[1]], mylist[[2]], by = "pos"), mylist[[3]])

On Wed, Jan 21, 2009 at 11:19 AM, Antje <niederlein-rstat@yahoo.de> wrote:

> Henrique Dallazuanna schrieb:
>
>> Try this also:
>>
>>  cbind(pos = mylist$df1$pos, data.frame(mylist)[grep("data",
>> names(data.frame(mylist)))])
>>
>
> Hi Henrique,
>
> cool solution - that's seems to be the easiest way!
> though I thought there should be some possibiliy of multiple merge
>
> Anyway, this will do it for now!
>
> Thank you!
>
>
>
>> On Wed, Jan 21, 2009 at 6:19 AM, Antje <niederlein-rstat@yahoo.de<mailto:
>> niederlein-rstat@yahoo.de>> wrote:
>>
>>    Hi there,
>>
>>    I have a list of dataframes (generated by reading multiple files)
>>    and all dataframes are comparable in dimension and column names.
>>    They also have a common column, which, I'd like to use for merging.
>>    To give a simple example of what I have:
>>
>>    df1 <- data.frame(c(LETTERS[1:5]), c(2,6,3,1,9))
>>    names(df1) <- c("pos", "data")
>>    df3 <- df2 <- df1
>>    df2$data <- c(6,2,9,7,5)
>>    df3$data <- c(9,3,6,2,1)
>>    mylist <- list(df1,df2,df3)
>>    names(mylist) <- c("df1","df2","df3")
>>
>>     > mylist
>>
>>    $df1
>>     pos data
>>    1   A    2
>>    2   B    6
>>    3   C    3
>>    4   D    1
>>    5   E    9
>>
>>    $df2
>>     pos data
>>    1   A    6
>>    2   B    2
>>    3   C    9
>>    4   D    7
>>    5   E    5
>>
>>    $df3
>>     pos data
>>    1   A    9
>>    2   B    3
>>    3   C    6
>>    4   D    2
>>    5   E    1
>>
>>    If I use do.call("cbind"), I'll end up with something like this
>>
>>      pos data pos data pos data
>>    1   A    2   A    6   A    9
>>    2   B    6   B    2   B    3
>>    3   C    3   C    9   C    6
>>    4   D    1   D    7   D    2
>>    5   E    9   E    5   E    1
>>
>>
>>    but now, I don't know anymore which data comes from which
>>    dataframe... and I have the column "pos" multiple times...
>>
>>    Instead I'd like to have it like this:
>>
>>      pos df1 df2 df3
>>    1   A    2   6   9
>>    2   B    6   2   3
>>    3   C    3   9   6
>>    4   D    1   7   2
>>    5   E    9   5   1
>>
>>    How, can I realize it? (The list, I'm working with has not just 3
>>    data frames like given in my example, so I need to automize it)
>>
>>
>>    Antje
>>
>>    ______________________________________________
>>    R-help@r-project.org <mailto:R-help@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.
>>
>>
>>
>>
>> --
>> Henrique Dallazuanna
>> Curitiba-Paraná-Brasil
>> 25° 25' 40" S 49° 16' 22" O
>>
>
> ______________________________________________
> R-help@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.
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O

	[[alternative HTML version deleted]]


