Как найти общее количество значений строк в R

#r

#r

Вопрос:

Я пытаюсь найти общее количество строк, значение столбца которых равно 3 или 4. При этом первая строка имеет только одно значение, равное 3, поэтому, если я создам новый столбец

 currentdx_count1$TotalDiagnoses
  

Этот новый столбец под названием TotalDiagnoses должен содержать только значение 1 для первой строки. Я пытался

 currentdx_count1$TotalDiagnoses <- rowSums(currentdx_count1[2:32])
  

Это не дает мне того, что мне нужно, как ожидалось, потому что это буквально суммирует всю строку. При этом, существует ли существующая функция, которая делает то, что я хочу сделать, или мне придется ее создать? Могу ли я указать больше в rowSums, чтобы это работало так, как мне нужно?

Спасибо за любую помощь.

Редактировать: я пытаюсь адаптировать метод, который я использовал ранее в своем скрипте, который работает для аналогичной цели

 findtotal <- endsWith(names(currentdx_count1), 'Current')
findtotal <- lapply(findtotal, `>`, 2)
findtotal <- unlist(findtotal)
currentdx_count1$TotalDiagnoses <- currentdx_count1[c(findtotal)]
  

Я получаю ошибку, которую я никогда раньше не видел (ошибка в представлении?!)
Итак, я попробовал только это

 findtotal <- endsWith(names(currentdx_count1), 'Current')
currentdx_count1$TotalDiagnoses <- currentdx_count1[c(findtotal)]
  

Это приближает меня, но это нахождение общего количества для каждого столбца отдельно, что мне не нужно. Я хочу, чтобы один столбец включал значения для каждого SID.

Ответ №1:

Вы можете сравнить фрейм данных со значением 3 или 4, а затем использовать rowSums для подсчета :

 currentdx_count1$TotalDiagnoses <- rowSums(currentdx_count1[-1] == 3 | 
                                           currentdx_count1[-1] == 4)
currentdx_count1$TotalDiagnoses
#[1] 1 2 2 2 1 1 1 1 1 1 1 1 1 2