dat <- structure(list(V1 = structure(c(1L, 2L, 2L, 2L, 3L, 3L), .Label = c("A",
"B", "C"), class = "factor"), V2 = c(1L, 0L, 0L, 0L, 1L, 0L),
V3 = c(0L, 1L, 0L, 0L, 0L, 0L), V4 = c(0L, 0L, 1L, 0L, 0L,
0L), V5 = c(0L, 0L, 0L, 0L, 0L, 1L), V6 = c(0L, 0L, 0L, 1L,
0L, 1L), V7 = c(0L, 0L, 1L, 0L, 0L, 0L)), .Names = c("V1",
"V2", "V3", "V4", "V5", "V6", "V7"), class = "data.frame", row.names = c(NA,
-6L))
Вы могли бы ...
aggregate(.~ V1 , data =dat, sum)
или
library(plyr)
ddply(dat, .(V1), function(x) colSums(x[,2:7]) )
Если вы работаете с data.frame
где есть дубликаты, но вы хотите только наличие или отсутствие 1
Следует отметить, что после этих функций вы можете сделать что-то вроде dat[!(dat %in% c(1,0)] <- 1
.
Благодаря Свену этот ответ работает на меня! :) – Lisann