Я не смог найти ответ на свой вопрос ни здесь, ни в Google.
У меня есть фрейм данных (ширина 500 столбцов, длина 200 000 строк) с несколькими строками на человека. Каждая ячейка (за исключением первого столбца с идентификатором человека) содержит 0 или 1. Я ищу способ уменьшить этот фрейм данных до 1 строки на человека, в котором я беру максимум для каждого столбца по человеку.
Я знаю, что могу использовать ddply или data.table... как показано ниже...
tt <-data.frame(person=c(1,1,1,2,2,2,3,3,3), col1=c(0,0,1,1,1,0,0,0,0),col2=c(1, 1, 0, 0, 0, 0, 1 ,0 ,1))
library(plyr)
ddply(tt, .(person), summarize, col1=max(col1), col2=max(col2))
person col1 col2
1 1 1
2 1 0
3 0 1
Но я не хочу указывать имена каждого из моих столбцов, потому что 1) у меня их 500 и 2) в новом наборе данных они могут быть другими.