Итак, в основном у меня есть фрейм данных с множеством «наборов позиций» элементов, и я хочу рассчитать матрицу расстояний для каждого набора элементов. Я мог бы сделать это, используя for l oop и добавив его в список, но я думаю, что должен быть более элегантный метод, использующий dplyr, purrr или аналогичный, но я рисую полный пробел относительно того, как действовать дальше.
Итак, давайте предположим, что мой фрейм данных выглядит следующим образом:
df <- data.frame(
trial = c(rep(1,3),rep(2,5),rep(3,7)),
object_name = c("stapler", "bottle", "cup", "ball", "chocolate","tape","pen","bowl","stapler", "bottle", "cup", "ball", "tape","pen","bowl"),
posX = c(0.1,0.2,0.3,0.3,0.2,0.5,-0.4,-0.1,0.8,-0.3,-0.4,0.3,0.2,0,-0.2),
posY = c(-0.2,0.5,0.3,0.9,-0.3,-0.1,0,0.6,-0.7,-1,0.2,0.3,-0.8,0.6,1)
)
т.е. имена объектов могут перекрываться от испытания к испытанию, но существует разное количество объектов для каждого испытания, и моя цель - вычислить матрица (евклидова) расстояний с использованием posX и posY для каждого испытания. Эти матрицы будут иметь разный размер для каждого испытания, от 3x3 до 7x7. В идеале я мог бы хранить все эти матрицы в одной ячейке кадра данных, но я даже не уверен, что это возможно? Если нет, то список, содержащий для каждого испытания матрицу расстояний, также будет работать.
Спасибо за любую помощь!