1

I have a data.frame that has 2 factors; one called kernel_type (with 3 levels: b, e, and p) and one called group_by_var (with 3 levels: tw, fif, sev). The first column of the dataset is called levels_together and contains numbers.

I have a second data.frame with the same structure, with different numbers in the levels_together column.

They look like this:

   levels_together group_by_var kernel_type
1             0.051      tw     b
2             0.055      tw     b
3             0.053      fif    b
4             0.046      fif    b
5             0.053      sev    b
6             0.050      sev    b
7             0.059      tw     e
8             0.056      tw     e
9             0.052      fif    e
10            0.044      fif    e
11            0.058      sev    e
12            0.053      sev    e
13            0.052      tw     p
14            0.053      tw     p
15            0.051      fif    p
16            0.044      fif    p
17            0.051      sev    p
18            0.050      sev    p

I would like the mean of levels_together for tw within b; for fif within b, etc. The first three final numbers should be:

0.053 (mean of tw within b) 0.0495 (mean of fif within b) 0.0515 (mean of sev within b)

How can I accomplish this with an apply function?

StatsSorceress
  • 3,019
  • 7
  • 41
  • 82
  • 1
    rbind two dataframes, if more than 2 dataframes see [this post](https://stackoverflow.com/questions/2851327/convert-a-list-of-data-frames-into-one-data-frame) on how to rbind multiple dataframes. Then use answer posted by @G5W . – zx8754 Aug 30 '17 at 20:46

1 Answers1

2

You can do this with aggregate

aggregate(levels_together ~ group_by_var + kernel_type, data=df, FUN=mean)
  group_by_var kernel_type levels_together
1          fif           b          0.0495
2          sev           b          0.0515
3           tw           b          0.0530
4          fif           e          0.0480
5          sev           e          0.0555
6           tw           e          0.0575
7          fif           p          0.0475
8          sev           p          0.0505
9           tw           p          0.0525
G5W
  • 36,531
  • 10
  • 47
  • 80