Создайте переменную для подсчета вхождений «да» между строками, используя цикл for (r) - PullRequest
0 голосов
/ 08 октября 2018

Мне нужно добавить столбец, NumCap, который является числом вхождений «да» в Cap1-Cap6, используя цикл «для».Ниже приведены первые 5 из 34 наблюдений.

(В SAS я создал массив Cap1-Cap6 и применил IF Cap (i) = 'yes', ТО NumCap +1. Я новичок в обоих, но имеютруднее сделать это в т).

     Sex    AgeGroup Weight Cap1 Cap2 Cap3 Cap4 Cap5 Cap6 NumCap
1    male      young     12  yes  yes  yes  yes  yes  yes    
2    female    young     15  yes   no   no  yes  yes  yes
3    male      young     15  yes  yes   no   no  yes  yes
4    male      young     15  yes  yes   no  yes  yes  yes
5    male      young     13  yes  yes  yes  yes  yes  yes

1 Ответ

0 голосов
/ 08 октября 2018

Мы можем использовать rowSums для создания «NumCap».Поместите в столбцы набора данных значение grep, преобразуйте его в логический matrix (==) и получите сумму ИСТИНА в каждой строке (rowSums)

df$NumCap <- rowSums(df[grep("^Cap\\d+", names(df))] ==  "yes")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...