Usage dplyr:
df <- data.frame(Color = c(rep("blue",3), rep("red", 3), rep("green", 3)),
Number = rep(1:3, 3),
Y = c(5,3,2,5,8,2,2,9,3))
df %>%
left_join(df, by = c("Color")) %>%
filter(Number.x != Number.y) %>%
mutate(Comparison = sprintf("%s_vs_%s", Number.x, Number.y)) %>%
mutate(Y = ifelse(Y.x - Y.y >= 0, 1, 0)) %>%
select(Color, Comparison, Y)
Color Comparison Y
1 blue 1_vs_2 1
2 blue 1_vs_3 1
3 blue 2_vs_1 0
4 blue 2_vs_3 1
5 blue 3_vs_1 0
6 blue 3_vs_2 0
7 red 1_vs_2 0
8 red 1_vs_3 1
9 red 2_vs_1 1
10 red 2_vs_3 1
11 red 3_vs_1 0
12 red 3_vs_2 0
13 green 1_vs_2 0
14 green 1_vs_3 0
15 green 2_vs_1 1
16 green 2_vs_3 1
17 green 3_vs_1 1
18 green 3_vs_2 0
source
share