R - появление по переменной - PullRequest
0 голосов
/ 16 июня 2020

У меня есть набор данных под названием ограничения, и я знаю, могут ли люди выполнять действия (есть вилкой, вставать с постели ...).

Каждое число представляет, с каким уровнем сложности может выполнять каждый человек действие (1: нет сложности, 2: некоторые трудности, 3: высокие трудности, 4: не могу выполнить действие вообще)

Меня больше всего интересует уровень 4.

Набор данных выглядит вот так (со многими другими переменными)

> head(restrictions)
  RATOI_I RAHAB_I RANOU_I RAELI_I RAACH_I RAREP_I RAMEN_I RAADM_I RAMED_I RADPI_I RADPE_I RABUS_I  
1       4       4       1       1       4       4       4       4       1       1       4       4              
2       4       3       3       1       4       4       4       4       4       2       4       4           

Я хотел бы знать, сколько людей имеют уровень 4 в RATOI_I (я могу это сделать) и для этих людей уровень 4 в RATOI_I, сколько людей уровня 4 в RAHAB_I и каждой переменной.

Я посмотрел на функцию sapply (), но я полностью потерялся, я не знаю, как ее использовать и с какой функцией. Или я должен использовать функцию group_by ()?

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 16 июня 2020

Вы можете использовать apply с sum, используя restrictions==4 для подсчета числа, равного 4 в столбце.

apply(restrictions==4, 2, sum)
#colSums(restrictions==4) #Alternative
#RATOI_I RAHAB_I RANOU_I RAELI_I RAACH_I RAREP_I RAMEN_I RAADM_I RAMED_I RADPI_I RADPE_I RABUS_I 
#      2       1       0       0       2       2       2       2       1       0       2       2 

Или только для тех, у кого есть restrictions$RATOI_I==4 (Спасибо @ Daniel-o для указания на это):

apply(restrictions[restrictions$RATOI_I==4]==4, 2, sum)
#colSums(restrictions[restrictions$RATOI_I==4]==4)
#RATOI_I RAHAB_I RANOU_I RAELI_I RAACH_I RAREP_I RAMEN_I RAADM_I RAMED_I RADPI_I RADPE_I RABUS_I 
#      2       1       0       0       2       2       2       2       1       0       2       2 
0 голосов
/ 16 июня 2020

мы также можем сделать базовыми пакетами:

df[df<4]<-0
df[df==4]<-1
colSums(df)

>RATOI_I RAHAB_I RANOU_I RAELI_I RAACH_I RAREP_I RAMEN_I RAADM_I RAMED_I RADPI_I RADPE_I RABUS_I 
      2       1       0       0       2       2       2       2       1       0       2       2 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...