2015-02-15 3 views
0

У меня есть данные по широте и долготе по некоторым переменным погодным условиям, таким как maxT и minT. Я хочу повторить выборку из этих данных, так что если в образце выбрано значение lat/long в день, то все латы/длинные интервалы в пределах 300 км этого лат/длинного (соседи) также должны быть частью образца , Я не уверен, как это сделать. До сих пор я использовал команду dnearneigh из пакета spdep для идентификации lat/longs в пределах 300 км каждого лата/долго.Как создать образец бутстрапа с определенными свойствами?

Заранее за вашу помощь. Вот мои данные образца и код R.

dput(head(rad_aod_temp_daily,1)) 

structure(list(latitude = 23L, longitude = 68L, year = 2000L, 
month = 11L, day = 21L, xygrid_id = 632L, solar_rad = 2.070422, 
aod = 0.27, day_of_season = 1L, cntry = structure(1L, .Label = "India", class = "factor"), 
state = structure(2L, .Label = c("Bihar", "Gujarat", "Haryana", 
"Madhya Pradesh", "Maharashtra", "Punjab", "Rajasthan", "Uttar Pradesh" 
), class = "factor"), log_sr = 0.7277523, time = 1L, time2 = 1L, 
date = structure(1275L, .Label = c("01-Apr-01", "01-Apr-02", 
"01-Apr-03", "01-Apr-04", "01-Apr-05", "01-Apr-06", "01-Apr-07", 
"01-Apr-08", "01-Apr-09", "01-Apr-10", "01-Apr-11", "01-Apr-12", 
"01-Apr-13", "01-Dec-00", "01-Dec-01", "01-Dec-02", "01-Dec-03", 
"01-Dec-04", "01-Dec-05", "01-Dec-06", "01-Dec-07", "01-Dec-08", 
"01-Dec-09", "01-Dec-10",class = "factor"), maxt = 31.22, mint = 16.11, 
meant = 23.67), .Names = c("latitude", "longitude", "year", 
"month", "day", "xygrid_id", "solar_rad", "aod", "day_of_season", 
"cntry", "state", "log_sr", "time", "time2", "date", "maxt", 
"mint", "meant"), row.names = 1L, class = "data.frame") 

library(spdep) 
coords <- as.matrix(cbind(rad_aod_temp_daily$longitude,rad_aod_temp_daily$latitude)) 
nlist <- dnearneigh(coords, d1=0,d2=300,longlat=TRUE) 

ответ

1

После того, как вы определили случаи, соответствующие вашим критериям, создайте новый фрейм данных и загрузите его.

#create data frame 
X1=rnorm(1000,0,1) 
X2=rnorm(1000,0,1) 
df=cbind(X1,X2) 
#create indicator to bootstrap 
df$indicator=ifelse(X1>.75,1,0) #I select only cases greater than .75 on X1 
df.new=df[df$indicator==1,] 

После того, как вы создали df.new boostrap эти данные.

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