首页 > 解决方案 > R帮助解决问题

问题描述

我正在尝试创建一个直方图,该直方图将总结回答问题 s22 为 2 或 4 的男性的第二指长度分布。我遇到错误,显示无效休息,我该如何解决这个问题

标签: r

解决方案


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])

这有几个问题:

  1. 由于运算符的优先级和or&子句周围缺少括号,逻辑表达式将选择男性with以及所有其他行 with ,而不管 genders22 == 2s22 == 4
  2. s22_2or4_male已包含 column 的选定值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])

在此处输入图像描述


推荐阅读