У вас уже есть data.frame, и вы можете выполнять преобразования объектов st_sfc в нем, используя базовые аффинные преобразования .Например,
df1[1,1] = df1[1,1] + c(2,0)
ggplot(df1) +
geom_sf(aes(geometry = geometry))
Пояснительная записка: df1[1,1]
выбирает первый столбец и строку, которая является звездой.Добавление c(2,0)
переводит его на +2 в направлении х.
Ответ на вопрос, который вы на самом деле задали: Если вам действительно нужен x, y, кординируетв качестве столбцов в data.frame вы можете использовать
df2 = data.frame(st_coordinates(df1[,1]))
Однако для описанного вами варианта использования первый вышеописанный метод будет лучше.Не только потому, что он быстрее и аккуратнее, но и потому, что манипулирование самими объектами sf позаботится о таких вещах, как crs и экстент.