2016-03-03 3 views
1

Я пытаюсь подмножить свой набор данных «eggdat» для дневных и ночных часов. Это:R: Подмножество возвращает "0 obs."

'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 ... 

Подменит для дневного времени работает отлично:

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 ... 

делая точно то же самое для ночного времени, однако, возвращает подмножество с 0 наблюдений:

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', ] и nighttime <- eggdat[eggdat$hour <= '7' & eggdat$hour >= '21', ]) привело к дневному подмножества, содержащего '0 набл., Но ночь подмножество работает нормально, так что это только наоборот! Дневные: 'data.frame': 0 obs. of 10 variables: Nighttime:

'data.frame': 28800 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 21 21 21 21 21 21 21 21 21 21 ... 
$ minute: int 0 0 0 0 0 0 0 0 0 0 ... 
$ second: int 0 1 2 3 4 5 6 7 8 9 ... 
$ Roll : num 65.8 65.8 66.1 65.6 65.6 ... 
$ Pitch : num 6.35 6.34 6.24 6.4 6.27 ... 
$ Yaw : num 171 172 174 176 176 ... 
$ temp1 : num 41.5 41.5 41.5 41.5 41.5 41.5 41.5 41.5 41.5 41.5 ... 

Я действительно не знаю, что делать, я очень смущен все это ..

ответ

3

eggdat[eggdat$hour <= 7 | eggdat$hour >= 21, ] Вы хотите

x < 7 & x > 21 переводит х меньше 7 И больше, чем 21

x < 7 | x > 21 означает x меньше 7 OR больше, чем 21

Смежные вопросы