我正在尝试创建一个直方图,该图将总结以 2 或 4 回答问题 s22 的男性的第二根手指长度的分布。我遇到错误,显示无效中断,我该如何解决这个问题
答案 0 :(得分:1)
OP 对问题的最后一次编辑(截至 2021-07-03 03:55Z)显示了代码
s22_2or4_male <- mydata1$second[mydata1$gender == 'male' & mydata1$s22 =='2' | mydata1$s22 == '4']
hist(mydata1$second[s22_2or4_male])
有几个问题:
&
运算符的优先级以及 or 子句周围缺少括号,逻辑表达式将选择 males with s22 == 2
as以及所有其他带有 s22 == 4
无论性别的行。s22_2or4_male
已包含列 mydata1$second
的选定值。因此,hist(mydata1$second[s22_2or4_male])
将使用 s22_2or4_male
的值对 mydata1$second
再次进行子集化。问题可以通过以下方式解决
s22_2or4_male <- mydata1$gender == 'male' & mydata1$s22 %in% c('2', '4')
hist(mydata1$second[s22_2or4_male])
现在,s22_2or4_male
是一个逻辑向量,表示 mydata1
的选定行。
mtcars
数据集的可重现示例cyl_6or8_gear4 <- mtcars$gear == 4 & mtcars$cyl %in% c(6, 8)
hist(mtcars$mpg[cyl_6or8_gear4])