У меня есть кадр данных, как показано ниже, с векторными координатами:
df <- structure(list(x0 = c(22.6, 38.5, 73.7), y0 = c(62.9, 56.6, 27.7
), x1 = c(45.8, 49.3, 80.8), y1 = c(69.9, 21.9, 14)), row.names = c(NA,
-3L), class = c("tbl_df", "tbl", "data.frame"))
# A tibble: 3 x 4
x0 y0 x1 y1
<dbl> <dbl> <dbl> <dbl>
1 22.6 62.9 45.8 69.9
2 38.5 56.6 49.3 21.9
3 73.7 27.7 80.8 14
Для целей визуализации мне нужно вручную интерполировать точки, т.е. добавить промежуточную строку между каждыми двумя строками df
, где начальные координаты x0, y0
являются конечными координатами оригинальной, предыдущей строки, а конечные координаты x1, y1
начальные координаты оригинала, следующая строка. Мне также нужно сохранить информацию, если наблюдение получено из исходного набора данных или добавлено вручную. Таким образом, ожидаемый результат будет:
# A tibble: 5 x 5
x y pass_end_x pass_end_y source
<dbl> <dbl> <dbl> <dbl> <chr>
1 22.6 62.9 45.8 69.9 original
2 45.8 69.9 38.5 56.6 added
3 38.5 56.6 49.3 21.9 original
4 49.3 21.9 73.7 27.7 added
5 73.7 27.7 80.8 14 original
Как я могу сделать это эффективным и элегантным способом (предпочтительно tidyverse
)?