r - R - 按变量出现
问题描述
我有一个名为限制的数据集,我知道人们是否可以采取行动(用叉子吃饭,起床......)。
每个数字代表每个人可以做某项动作的难度级别(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
我想知道有多少人在 RATOI_I 中处于 4 级(我可以做到),对于这些人在 RATOI_I 中处于 4 级,有多少人在 RAHAB_I 和每个变量中处于 4 级。
我查看了函数 sapply() 但我完全迷失了,我不知道如何使用它以及使用哪个函数。或者我必须使用 group_by() 函数吗?
提前致谢!
解决方案
您可以使用apply
with sum
usingrestrictions==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
推荐阅读
- c++ - C ++传递给函数会将对象变量变成垃圾
- python - 为什么json输出这么小?
- javascript - 找不到模块:内部/模块/cjs/loader.js:969
- linux - printk() 消息未出现在控制台中
- ios - 寻找 2 个键盘观察员。1 在键盘即将显示时触发,1 仅在键盘隐藏时触发
- android - 导航视图菜单项不响应任何点击
- r - tidyr::pivot_longer() 用于多个匹配的名称/值集
- micronaut - 如何在 Micronaut 中获取请求标头的完整列表
- javascript - 在Javascript fetch中转换python请求?
- c# - 尝试通过函数将变量声明为 C# 中的完整脚本