Мне не совсем ясно, какова ваша конечная цель;ваш ожидаемый результат выглядит как неуклюжий формат данных.Я предполагаю, что это должно соответствовать некоторой форме пользовательских / устаревших требований к форматированию данных.
Помимо этого, вы можете использовать outer
для выполнения всех парных сравнений, а затем выполнить некоторую форму данных
library(tidyverse)
outer(df$data, df$data, FUN = function(x, y) x < y) %>%
as.data.frame() %>%
rowid_to_column("rowx") %>%
gather(rowy, val, -rowx) %>%
mutate(
rowx = paste0("row", rowx),
rowy = sub("V", "row", rowy)) %>%
filter(rowx < rowy) %>%
unite(compare, rowx, rowy, sep = "<") %>%
transmute(
compare,
Yes = if_else(val == TRUE, 1, 0),
No = if_else(val == FALSE, 1, 0))
)
# compare Yes No
#1 row1<row2 1 0
#2 row1<row3 1 0
#3 row2<row3 1 0
#4 row1<row4 1 0
#5 row2<row4 0 1
#6 row3<row4 0 1
#7 row1<row5 1 0
#8 row2<row5 1 0
#9 row3<row5 0 1
#10 row4<row5 1 0
Пример данных
df <- read.table(text =
"data
1 0.05493405
2 0.07844055
3 0.12901255
4 0.0655028
5 0.078554925", header = T)