петля "свободного" основания R
вариант с использованием reshape
:
df <- structure(list(FDR_1 = c(0.001, 0.34, 0.2, 2, 4),
Label_1 = c(NA, NA, NA, NA, NA),
FDR_2 = c(0.45, 6, 3, 2.5, 0.001),
Label_2 = c(NA, NA, NA, NA, NA)),
class = "data.frame",
row.names = c(NA, -5L))
mv <- lapply(split(names(df),
gsub("(.+)_\\d+",
"\\1",
names(df))), sort)
data_long <- reshape(df,
varying = mv,
direction = "long",
v.names = names(mv))
data_long$Label[data_long$FDR >= 2] <- "Y"
reshape(data_long)
# id FDR_1 Label_1 FDR_2 Label_2
# 1.1 1 0.001 <NA> 0.450 <NA>
# 2.1 2 0.340 <NA> 6.000 Y
# 3.1 3 0.200 <NA> 3.000 Y
# 4.1 4 2.000 Y 2.500 Y
# 5.1 5 4.000 Y 0.001 <NA>