I manually constructed the list of sample names and tried the
aggregate call I mentioned.
Merge works when called manually, but not when using aggregate.

> mylist <- list(data.frame(name="sample1", red=20), data.frame(name="sample1", 
> green=15), data.frame(name="sample2", red=10), data.frame(na me="sample2", 
> green=30))
>  names <- list("sample1", "sample1", "sample2", "sample2")
> merge(mylist[1], mylist[2])
     name red green
1 sample1  20    15
> merge(mylist[3], mylist[4])
     name red green
1 sample2  10    30
> aggregate(mylist, by=as.list(names), merge)
Error in as.data.frame(y) : argument "y" is missing, with no default

What's the right way to do this?

On Fri, Jun 3, 2016 at 1:20 PM, Ed Siefker <ebs15...@gmail.com> wrote:
> I have a list of data as follows.
>
>> list(data.frame(name="sample1", red=20), data.frame(name="sample1", 
>> green=15), data.frame(name="sample2", red=10), data.frame(name="sample 2", 
>> green=30))
> [[1]]
>      name red
> 1 sample1  20
>
> [[2]]
>      name green
> 1 sample1    15
>
> [[3]]
>      name red
> 1 sample2  10
>
> [[4]]
>      name green
> 1 sample2    30
>
>
> I would like to massage this into a data frame like this:
>
>      name red green
> 1 sample1  20    15
> 2 sample2  10    30
>
>
> I'm imagining I can use aggregate(mylist, by=samplenames, merge)
> right?  But how do I get the list of samplenames?  How do I subset
> each dataframe inside the list?

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to