У меня есть следующая матрица M
structure(c(0, 0.2, 0.4, 0.6, 0.8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2, 0.4, 0.6, 0.8, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 423, 176, 135,
30, 4), .Dim = c(5L, 19L), .Dimnames = list(NULL, c("pregnant_min",
"glucose_min", "blood_min", "skin_min", "INSULIN_min", "MASS_min",
"DIAB_min", "AGE_min", "CLASS_min", "pregnant_max", "glucose_max",
"blood_max", "skin_max", "INSULIN_max", "MASS_max", "DIAB_max",
"AGE_max", "CLASS_max", "NumOfObser")))
и список L
:
L = list(1L, 2L, 3:5)
Элементы списка указывают, какие строки M
должны бытьсгруппированы вместе.Первая и вторая строки должны быть собственными группами.3-5 строк должны образовывать группу в следующем смысле:
Строки 3-5 из M следует заменить одной строкой, у которой min
каждого значения должно быть min
минимумав строках 3-5 значение max
должно быть максимальным, а число наблюдений должно быть суммой.
Таким образом, результат должен выглядеть следующим образом:
structure(c(0, 0.2, 0.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2, 0.4, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 423,
176, 169), .Dim = c(3L, 19L), .Dimnames = list(NULL, c("pregnant_min",
"glucose_min", "blood_min", "skin_min", "INSULIN_min", "MASS_min",
"DIAB_min", "AGE_min", "CLASS_min", "pregnant_max", "glucose_max",
"blood_max", "skin_max", "INSULIN_max", "MASS_max", "DIAB_max",
"AGE_max", "CLASS_max", "NumOfObser")))
Элементысписок L
может состоять из любой комбинации 1-5, соответствующей количеству строк M
.
Как можно добиться этого результата в общем случае?До сих пор я просматривал элементы L
, но я уверен, что есть более аккуратный / эффективный способ сделать это.