[R] merging dataframes in a list
Ed Siefker
ebs15242 at gmail.com
Fri Jun 3 20:41:31 CEST 2016
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 <ebs15242 at 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?
More information about the R-help
mailing list