dput(new) structure(list(ID = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22), A1 = c(1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0,
Something like this?
apply(new[,-1],1,function(x){ paste0(colnames(new)[which(x==1)+1],collapse=",") }) [1] "A1,A2" "A1,A2" "A1" "A1" "" "A2,A8" "A6,A8" "A1,A8" "A6,A8" "A8" "A1,A8" "A6" [13] "A5,A8" "" "A8" "A8" "A8" "A8" "A8" "A8" "A7" ""