Converting multiple boolean columns to single factor column
问题 my data frame look like this: A S1 S2 S3 S4 1 ex1 1 0 0 0 2 ex2 0 1 0 0 3 ex3 0 0 1 0 4 ex4 1 0 0 0 5 ex5 0 0 0 1 6 ex6 0 1 0 0 7 ex7 1 0 0 0 8 ex8 0 1 0 0 9 ex9 0 0 1 0 10 ex10 1 0 0 0 i need to have it as a single factor list like: A Type ex1 S1 ex2 S2 ex3 S3 ex4 S1 ex5 S4 ex6 S2 ex7 S1 ex8 S2 ex9 S3 ex10 S1 anybody help my problem? 回答1: Assuming d is the data, the new column could be obtained with d$type <- names(d[-1])[apply(d[-1] == 1, 1, which)] d[c(1, 6)] # A type # 1 ex1 S1 # 2 ex2 S2