У меня есть dataframe (obs) с 145 строками и более 1000 столбцов плюс числовой вектор с 145 значениями (thr).сумма, если больше, чем в r
Я хотел бы получить еще один вектор (sumifs) с 145 элементами, где каждый элемент является суммой значений obs [n,]> = thr [n].
Я думал, что я мог запустить цикл, где одна сумма строки рассчитывается более или менее, как:
sumifs[n] <- if(obs[n,]>=thr[n],sum(obs[n,]))
, но я не смог заставить его работать на одной строке либо.
Я рассматривал другие вопросы, где было предложено использовать агрегат или пакет plyr, но я действительно ничего не нашел.
Упрощенный пример только 15 строк и 3 столбцов следующая
c1 <- rep(1:5,3)
c2 <- rep(3:7,3)
c3 <- rep(2:6,3)
obs <- data.frame(r1,r2,r3)
thr <- c(2,2,3,3,4,4,5,5,2,2,3,3,4,4,5)
obs
r1 r2 r3
1 1 3 2
2 2 4 3
3 3 5 4
4 4 6 5
5 5 7 6
6 1 3 2
7 2 4 3
8 3 5 4
9 4 6 5
10 5 7 6
11 1 3 2
12 2 4 3
13 3 5 4
14 4 6 5
15 5 7 6
поэтому SUMIFS должно быть:
sumifs
5
9
12
15
18
0
0
0
15
18
3
7
9
15
18
Просьба представить тестовые данные для входа, см также HTTP: //stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – sgibb