R循环查找数据帧中的最小值和最大值

时间:2018-01-16 14:34:19

标签: r

我在R工作。

我有一个包含三列的数据帧df。结构如下所示:

df <- data.frame(c(11:15,4:7,21:24), c(rep("A",9),rep("B",4)), c(rep("X",5),rep("Y",4),rep("X",4)))
colnames(df) <- c("pos","name","name2")

示例:

pos   name   name2
11    A      X 
12    A      X
13    A      X
14    A      X
15    A      X
4     A      Y
5     A      Y
6     A      Y
7     A      Y
21    B      X
22    B      X
23    B      X
24    B      X

从这个数据框架中,我想创建一个看起来像这样的新文件(df_new)

name    name2   pos_min   pos_max
A       X       11        15
A       Y       4         7
B       X       21        24

因此,对于每个名称和组合的独特组合name2(在这种情况下:A-X,A-Y和B-X),我想把df $ pos的最小值和最大值放在两个新列中。

有人可以帮助我实现这个目标吗?

1 个答案:

答案 0 :(得分:4)

这可以使用dplyr包解决:

df_new <- df %>%
          group_by(name, name2) %>%
          summarise(pos_min = min(pos),
                    pos_max = max(pos))