dput(dat)
list(structure(c(0, 0, -1, -2, -1, -2, -1, -2, 0, 2, 99, 0, -1,
-2, -1, -2), .Dim = c(2L, 8L), .Dimnames = list(c("type1", "type2"
), c("A", "B", "C", "D", "E", "F",
"G", "H"))), structure(c(1, 2, 1, 2, 1, 2, 1, 2,
1, 2, 99, 0, 1, 3, 1, 3), .Dim = c(2L, 8L), .Dimnames = list(
c("type1", "type2"), c("A", "B", "C",
"D", "E", "F", "G", "H"))))
>dat
[[1]]
A B C D E F G H
type1 0 -1 -1 -1 0 99 -1 -1
type2 0 -2 -2 -2 2 0 -2 -2
[[2]]
A B C D E F G H
type1 1 1 1 1 1 99 1 1
type2 2 2 2 2 2 0 3 3
Предположим, у меня есть список выше с 2 элементами. Каждый элемент состоит из 2x8 data.frame
. ХочуR: добавление предметов в список
1) суммировать значения для type1
для каждого столбца через 2 data.frames
(НО лечить 99S как 0)
2), если значение type1
равно 0, сохранить свою соответствующую type2
значение. Если значение type1
не равно 0, установить его значение type2
= 0.
3) суммировать значения type2
для каждого столбца через data.frames
4) подсчета количества type1
значений, которые являются = 0 для каждого столбца и суммировать их (это type1_0 строка)
результат должен выглядеть следующим образом
A B C D E F G H
type1 1 0 0 0 1 0 0 0
type2 0 0 0 0 2 0 0 0
type1_0 1 0 0 0 1 0 0 0
Btw, это матрицы, а не кадры данных. –
Как вы получили «A» для типа 1, равным 0. Разве это не должно быть 1? – akrun
@akrun Спасибо за указание, что вне – Adrian