R:子集返回“0 obs”。

时间:2016-03-03 13:22:08

标签: r time subset

我正在尝试将我的数据集'eggdat'用于白天和夜晚。这样:

rtm.collapsed.gibbs.sampler(documents, links, K, vocab, num.iterations,
alpha, eta, beta, trace = 0L, test.start = length(documents) + 1L)
rtm.em(documents, links, K, vocab, num.e.iterations, num.m.iterations,
alpha, eta, lambda = sum(sapply(links, length))/(length(links) *(length(links) -1)/2), initial.beta = rep(3, K), trace = 0L,
test.start = length(documents) + 1L, tempering = 0.0)

日间工作的子集很好:

'data.frame':   54847 obs. of  10 variables:
$ year  : int  2014 2014 2014 2014 2014 2014 2014 2014 2014 2014 ...
$ month : int  7 7 7 7 7 7 7 7 7 7 ...
$ day   : int  31 31 31 31 31 31 31 31 31 31 ...
$ hour  : int  20 20 20 20 20 20 20 20 20 20 ...
$ minute: int  5 5 5 5 5 5 5 5 5 5 ...
$ second: int  0 1 2 3 4 5 6 7 8 9 ...
$ Roll  : num  -159 179 -164 -155 -137 ...
$ Pitch : num  -31.36 -41.05 -23.85 -6.62 -9.13 ...
$ Yaw   : num  -71.8 -113.3 -67.2 -140.2 -78.2 ...
$ temp1 : num  25 33.5 34 34 34 34 34 34 34 34 ...

然而,对于夜间做同样的事情,会返回一个包含0个观察值的子集:

daytime <- eggdat[eggdat$hour >= 7 & eggdat$hour <= 20, ]

'data.frame':   18847 obs. of  10 variables:
 $ year  : int  2014 2014 2014 2014 2014 2014 2014 2014 2014 2014 ...
 $ month : int  7 7 7 7 7 7 7 7 7 7 ...
 $ day   : int  31 31 31 31 31 31 31 31 31 31 ...
 $ hour  : int  20 20 20 20 20 20 20 20 20 20 ...
 $ minute: int  5 5 5 5 5 5 5 5 5 5 ...
 $ second: int  0 1 2 3 4 5 6 7 8 9 ...
 $ Roll  : num  -159 179 -164 -155 -137 ...
 $ Pitch : num  -31.36 -41.05 -23.85 -6.62 -9.13 ...
 $ Yaw   : num  -71.8 -113.3 -67.2 -140.2 -78.2 ...
 $ temp1 : num  25 33.5 34 34 34 34 34 34 34 34 ...

我真的不知道该怎么做..我尝试使用nighttime <- eggdat[eggdat$hour <= 7 & eggdat$hour >= 21, ] 'data.frame': 0 obs. of 10 variables: $ year : int $ month : int $ day : int $ hour : int $ minute: int $ second: int $ Roll : num $ Pitch : num $ Yaw : num $ temp1 : num ,但没有成功..我也试过subset,但也无法让它工作。

更令人困惑的是,在子集函数(eggdat$hour <- as.factor(eggdat$hour)daytime <- eggdat[eggdat$hour >= '7' & eggdat$hour <= '20', ])中添加引号会导致白天子集包含'0 obs。',但夜间子集工作正常,所以它只是另一种方式! 白天:nighttime <- eggdat[eggdat$hour <= '7' & eggdat$hour >= '21', ] 夜间:

'data.frame': 0 obs. of  10 variables:

我真的不知道该怎么做,我对这一切感到很困惑。

1 个答案:

答案 0 :(得分:3)

您想要eggdat[eggdat$hour <= 7 | eggdat$hour >= 21, ]

x < 7 & x > 21转换为x小于7 AND 大于21

x < 7 | x > 21转换为x小于7 OR 大于21