Предположим, у меня есть следующие SpatialPointsDataFrameИспользование применяются Spatial * DataFrame
library(sp)
exdf <- data.frame(cbind(1:10, 41:50, 101:110))
names(exdf) <- c("id", "x", "y")
coordinates(exdf) <- c("x", "y")
можно запустить следующие apply
apply([email protected], 1, function(x) {
cat(coordinates(exdf[exdf$id == x["id"],]), "\n")
})
Однако это кажется смешным, чтобы выбрать из того же кадра данных в функции. Я уже повторяю это.
Обратите внимание, что в моем фактическом использовании, мне нужно отправить как строки кадра данных и координат в другую функцию, так apply
ИНГ только на [email protected]
не вариант.
Вопрос 1: Есть ли способ сделать это без exdf[exdf$id == x["id"],]
?
Вопрос 2: Если нет, есть ли пакет, который я могу использовать вместо sp
для выполнения таких задач. Мне нужен sp
для его функции over
в основном, и также проверил также spatstat
и решил, что sp
прост в использовании. Однако использование «кадра данных», которое на самом деле не является data.frame
, меня раздражает.
спасибо.
Что вы на самом деле хотите сделать? Как называется эта другая функция? –
@ SimonO101: один из столбцов - это вектор. каждая строка имеет временные ряды, такие как данные. он сравнивает эту строку со строками в наборе данных, учитывая прямоугольную область кандидатов. прямоугольная область изменяется для каждой строки запроса, она создает прямоугольный многоугольник из координат строки запроса, затем делает наложение на строки набора данных для получения кандидатов. Я могу написать все это вручную, но я бы хотел использовать элегантные существующие решения, если они доступны. –
Я отредактировал свой ответ, но должен признать, что вы не совсем поняли, каков ваш желаемый конечный результат и какие ограничения применяются. – chryss