R: число строк таблицы данных в определенных столбцах> 0 - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь сделать функцию подсчета, как в Excel.Я хочу указать выбранный набор столбцов в строке, которые> 0.

Я использую пакет data.table для фильтрации и подсчета моих данных.

my data.table is DT с более чем 5000 строк данных, с 17 столбцами.Вот быстрый снимок того, как это выглядит.Недели 1-12 недель.

Area     Park   Number   Code  Text    Week1 Week2 Week3 Week4 Week5
Central  Bear   80458    FM50  Safety   1     0     5     20     0

Что я ищу: (считать недели> 0)

 Area     Park   Number   Code  Text    Week1  Week2  Week3  Week4  Week5 RowCount
Central  Bear   80458    FM50  Safety     1      0      5      20     0       3

То, что я пытался сделать, было:

DT <- DT[, RowCount := rowSums(DT[, c(-1, -2, -3, -4, -5)] >0) ]

Это работает для суммирования строк, удаляет столбцы, которые я не хочу считать, но когда я просмотрел остальные 5000 строк, он суммировал все> 0, не считая все> 0.

По сути то, что я хочу сделать, это как Excel countIf функция

Любая помощь приветствуется

1 Ответ

0 голосов
/ 10 декабря 2018

Вот способ использования rowSums:

dt <- data.table(W1 = sample(0:2, 3, rep = T),
                 W2 = sample(0:2, 3, rep = T),
                 W3 = sample(0:2, 3, rep = T))

dt[, Count := rowSums(.SD > 0), .SDcols = 1:3]

   W1 W2 W3 Count
1:  0  0  0     0
2:  2  1  1     3
3:  0  2  1     2

Вы просто должны настроить колонки для работы в .SDcols.

...