采取措施超过`sam`和`dup`

时间:2018-05-24 23:15:16

标签: r statistics

我正在尝试对以下数据集的samdup列进行处理:

    fat co lab sam dup
1  0.62  1   1   1   1
2  0.55  1   1   1   2
3  0.34  1   1   2   1
4  0.24  1   1   2   2
5  0.80  1   1   3   1
6  0.68  1   1   3   2
7  0.76  1   1   4   1
8  0.65  1   1   4   2
9  0.30  1   2   1   1
10 0.40  1   2   1   2
11 0.33  1   2   2   1
12 0.43  1   2   2   2
13 0.39  1   2   3   1
14 0.40  1   2   3   2
15 0.29  1   2   4   1
16 0.18  1   2   4   2
17 0.46  1   3   1   1
18 0.38  1   3   1   2
19 0.27  1   3   2   1
20 0.37  1   3   2   2
21 0.37  1   3   3   1
22 0.42  1   3   3   2
23 0.45  1   3   4   1
24 0.54  1   3   4   2
25 0.18  2   1   1   1
26 0.47  2   1   1   2
27 0.53  2   1   2   1
28 0.32  2   1   2   2
29 0.40  2   1   3   1
30 0.37  2   1   3   2
31 0.31  2   1   4   1
32 0.43  2   1   4   2
33 0.35  2   2   1   1
34 0.39  2   2   1   2
35 0.37  2   2   2   1
36 0.33  2   2   2   2
37 0.42  2   2   3   1
38 0.36  2   2   3   2
39 0.20  2   2   4   1
40 0.41  2   2   4   2
41 0.37  2   3   1   1
42 0.43  2   3   1   2
43 0.28  2   3   2   1
44 0.36  2   3   2   2
45 0.18  2   3   3   1
46 0.20  2   3   3   2
47 0.26  2   3   4   1
48 0.06  2   3   4   2

输出应为:

  lab co     fat
1   1  1 0.58000
2   2  1 0.34000
3   3  1 0.40750
4   1  2 0.37625
5   2  2 0.35375
6   3  2 0.26750

这些都是.RData文件的形式。

如果有人能说明如何做到这一点,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

您发布的部分数据的示例:

dt = read.table(text = "
fat co lab sam dup
0.62  1   1   1   1
0.55  1   1   1   2
0.34  1   1   2   1
0.24  1   1   2   2
0.80  1   1   3   1
0.68  1   1   3   2
0.76  1   1   4   1
0.65  1   1   4   2
0.30  1   2   1   1
0.40  1   2   1   2
0.33  1   2   2   1
0.43  1   2   2   2
0.39  1   2   3   1
0.40  1   2   3   2
0.29  1   2   4   1
0.18  1   2   4   2
", header= T)

library(dplyr)

dt %>%
  group_by(lab, co) %>%           # for each lab and co combination
  summarise(fat = mean(fat)) %>%  # get the mean of fat
  ungroup()                       # forget the grouping

# # A tibble: 2 x 3
#     lab    co   fat
#   <int> <int> <dbl>
# 1     1     1  0.58
# 2     2     1  0.34