У меня большой набор данных с полем, содержащим объединенный код FIPS и почтовый индекс, и другой набор данных с центроидами, взвешенными по населению для групп блоков, в сочетании с некоторыми данными почтового индекса.Я хочу разделить свои данные по «коду FIPS», а затем назначить каждой строке набор координат для центроида группы блоков, где вероятность выбора центроида пропорциональна его населению.
Первоначально я использовалвыборка данных (1000 строк) и функция страт из пакета выборки, которая работала нормально.Теперь, когда я хочу сделать это для каждой строки в наборе данных, я получаю эту ошибку:
Error in strata(popCenters2, stratanames = "FIPS", method = "systematic", :
not enough obervations in the stratum 1
Я подозреваю, что это потому, что страты не используют замену, и мой набор данных оченьбольше, чем набор данных центроида.
Это код, который я использовал с функцией страт, примененной к моей выборке:
## Combined fields to match format of other data
popCenters2 <- within(popCenters2,
FIPS <- paste(stateFIPS,
countyFIPS,
zipcode,
sep = ""))
sample %>% group_by(FIPS) %>% count() -> sampleCounts
popCenters2[order(popCenters2$FIPS), ] -> popCenters2
sampleCounts[order(sampleCounts$FIPS), ] -> sampleCounts
st = strata(popCenters2, stratanames = "FIPS", method = "systematic", size =
sampleCounts$n, pik = popCenters2$contribPop)
stTable = getdata(popCenters2, st)
В моей выборке было 5 строк с переменной «FIPS», равной 4200117325, это данные центроидав соответствии с этим:
FIPS tract blkGroup latitude longitude contribPop
4200117325 030200 1 +40.000254 -077.137559 452
4200117325 030200 2 +39.959070 -077.160354 324
4200117325 030400 1 +39.915855 -077.406954 194
4200117325 030400 2 +39.923503 -077.298505 131
4200117325 030400 3 +39.878509 -077.307547 173
4200117325 030400 4 +39.873705 -077.360488 176
4200117325 030400 5 +39.880362 -077.412175 108
4200117325 030500 1 +39.926149 -077.227283 630
4200117325 030500 2 +39.921269 -077.260640 459
Мой вопрос: как мне воспроизвести процедуру такого рода, если, например, мой фактический набор данных содержит 20 строк, соответствующих 4200117325?Я прочитал документацию по функции страты и некоторые другие (Strata из DescTools, пакет опросов), но не смог найти ничего, что позволило бы заменить.