Опция с base R
+(rowsum(df[-1], df$treatment) > 0)
# gene1 gene2 gene3
#A 1 1 0
#B 0 1 1
data
df <- structure(list(treatment = c("A", "A", "A", "A", "A", "B", "B",
"B", "B"), gene1 = c(0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L), gene2 = c(3L,
0L, 0L, 1L, 0L, 1L, 5L, 0L, 0L), gene3 = c(0L, 0L, 0L, 0L, 0L,
1L, 2L, 3L, 0L)), class = "data.frame", row.names = c(NA, -9L
))