У меня есть фрейм данных с 3 столбцами:
ObjectID: уникальный идентификатор многоугольника (или строки) AvgWTRisk: вероятность (0-1) нарушения в лесу, ~ 0,11 - самое высокое значение HA: ОБЛАСТЬ полигона в лесу
Я хочу разработать функцию для создания случайной выборки из фрейма данных на основе значения вероятности. Вот пример структуры данных:
data
OBJECTID AvgWTRisk HA
32697 32697 0.0008456 7.7465000
36480 36480 0.0050852 7.9329797
13805 13805 0.0173463 0.7154995
38796 38796 0.0026580 0.2882192
8494 8494 0.0089310 6.4686595
23609 23609 0.0090647 6.1246000
Dput
structure(list(OBJECTID = c(32697L, 36480L, 13805L, 38796L, 8494L,
23609L), AvgWTRisk = c(0.0008456, 0.0050852, 0.0173463, 0.002658,
0.008931, 0.0090647), HA = c(7.7465, 7.9329797, 0.7154995, 0.2882192,
6.4686595, 6.1246)), row.names = c(32697L, 36480L, 13805L, 38796L,
8494L, 23609L), class = "data.frame")
Я пытаюсь сделать это с помощью функции sample () в R.
Есть ли способ использовать сумму площади в качестве цели 'size =' вместо числа строк, например:
Landscape_WTDisturbed <- Landscape_WTRisk[sample(1:nrow(Landscape_WTRisk),
size = sum(HA >= 100*0.95 && HA <= 100*1.05),
prob = WTProb, replace = FALSE),]
где: WTProb является вектором AvgWTRisk, т. Е. 'WTProb <- as.vector (Landscape_WTRisk $ AvgWTRisk', а HA - столбец области из фрейма данных. </p>
Приведенный выше пример выборки дает мне фрейм данных со всеми столбцами, но без строк.
В отличие от:
Landscape_WTDisturbed <- Landscape_WTRisk[sample(1:nrow(Landscape_WTRisk),
size = 10,
prob = WTProb, replace = FALSE),]
, который обеспечивает выборку из 10 строк. Однако я не контролирую выбранную область .
Должен ли я попытаться достичь этого за некоторое время l oop, где площадь всех строк, суммируемых вместе, является критерием, и небольшой выбор строк можно постепенно добавлять вместе, пока цель не станет достиг?
Заранее спасибо!