我在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的最小值和最大值放在两个新列中。
有人可以帮助我实现这个目标吗?
答案 0 :(得分:4)
这可以使用dplyr
包解决:
df_new <- df %>%
group_by(name, name2) %>%
summarise(pos_min = min(pos),
pos_max = max(pos))