在一天的范围内,R中的子集在2个月之间

时间:2014-11-22 15:38:39

标签: r

我使用以下代码对数据进行了子集化。

setwd("C:/Users/A/Desktop")
vf <- read.csv("Height.csv", header = TRUE)
#Insert month and Day(s) desired
vf1 <- vf [ which(vf$Month==9 & vf$Day>0 & vf$Day <31), ]
vf2 <- vf1[c(-1,-2,-3)]

当我尝试从4月20日到5月20日进行分组时,我使用此代码(如下所示)并且它没有任何子集

vf1 <- vf [ which(vf$Month==4 & vf$Month ==5 & vf$Day>19 & vf$Day <32), ]

我也尝试另一种方式(下面)并收到错误

vf1 <- vf [ which(vf$Month==4 & vf$Day>19 & vf$Day <31), which(vf$Month ==5 & vf$Day>19 & vf$Day <32), ]
Error in `[.data.frame`(vf, which(vf$Month == 4 & vf$Day > 19 & vf$Day <  : 
  undefined columns selected

有人可以解释一下做错了什么吗?

1 个答案:

答案 0 :(得分:1)

正如@JoshuaUlrich所说,一次观察的月份不能同时是两个值。 这样的东西会起作用:

vf1 <- vf [ which( vf$Month==4 & vf$Day>19 | vf$Month ==5 & vf$Day <32 ), ]

所以你要说的是,如果Month是4,那么Day必须大于19 ,如果Month是5,则Day必须小于32。