Вот некоторые базовые решения R:
df$New_variable <- paste0("c",seq(df)%*%t(df))
или
df$New_variable <- paste0("c",rowSums(df*col(df)))
или
df$New_variable <- paste0("c",which(t(df)==1,arr.ind = T)[,"row"])
такие, что
> df
COl1 COl2 Col3 New_variable
1 1 0 0 c1
2 0 1 0 c2
3 0 0 1 c3
4 1 0 0 c1
ДАННЫЕ
df <- structure(list(COl1 = c(1L, 0L, 0L, 1L), COl2 = c(0L, 1L, 0L,
0L), Col3 = c(0L, 0L, 1L, 0L)), class = "data.frame", row.names = c(NA,
-4L))