【发布时间】:2021-11-08 23:12:09
【问题描述】:
我有 2 个虚拟变量
-
physical_violence和 -
sexual_violence。
我尝试将它们与ifelse() 函数和|-operator 结合起来创建一个虚拟变量,如果至少发生了一次暴力,该变量返回1。
以下方法输出不同的结果:
df <- mutate(df, physical_violence = iffelse(e03bidummy == 1 | e03cidummy == 1 |
e03didummy == 1 | e03eidummy == 1 | e03fidummy == 1 |
e03gidummy == 1 | e03hidummy == 1 | e03iidummy == 1 |
e03jidummy == 1, 1, 0))
df <- mutate(df, sexual_violence = ifelse(e04aidummy == 1 |
e04bidummy == 1 | e04cidummy == 1 | e04didummy == 1, 1, 0))
结合上述两个变量的假人代码:
df <- mutate(df, physical_sexual_violence =
ifelse(physical_violence == 1 | sexual_violence == 1, 1, 0))
我得到的结果是:
table(df$physical_sexual_violence): #875“是”,26.614“否”`
这与以下内容相矛盾:
-
table(df$physical_violence): #846“是”(3.07%)和 26.643“否” -
table(df$sexual_violence)# 634 “是”和 26.855 “否”。
我预计会有 1.480 起暴力事件。
谁能帮我找出我做错了什么?
【问题讨论】:
-
如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。
-
要获得 1480 起暴力案例,您必须
SUM两列中 1 的总数,而使用您的代码,您正在对存在两种形式的暴力的所有行求和。 -
如果一个对象对两种暴力类型都呈阳性,你认为这是一两个暴力案例吗?您的代码说它是 1,但这个预期的 1480 计数另有说明
标签: r if-statement categorical-data dummy-variable