Как преобразовать data.frame в SpatialPolygonsDataFrame

#r #dataframe #spdf

#r #фрейм данных #spdf

Вопрос:

Может быть, это что-то простое, но я сейчас в тупике. У меня есть, SpatialPolygonsDataFrame из которого я извлекаю столбцы данных и преобразую его в стандартный dataframe . Затем я округляю данные. Но, когда я хочу вставить данные, уже округленные обратно в SpatialPolygonsDataFrame , я вижу, что они сохраняют данные такими, какими они были изначально, без округления. Вот мой код.

 Hex_Grid_Pop <- readOGR(dsn=".", layer="Hex_Grid_500_Pop")
df = as.data.frame(Hex_Grid_Pop)[, 3:13]
df %>% mutate_if(is.numeric, round)
Hex_Grid_Pop[1:NROW(Hex_Grid_Pop), 3:13] = df
head(Hex_Grid_Pop@data)
  

Это то, что показывает мне моя консоль Извините, но у меня недостаточно репутации для публикации изображений.

Ответ №1:

Вам нужно назначить df для df %>% mutate_if(is.numeric, round) , т.е.

 df <- df %>% mutate_if(is.numeric, round)
  

В противном случае вы df остались неизменными.

Кроме того, ничто не мешает вам сделать это:

 Hex_Grid_Pop@data[,3:13] <- Hex_Grid_Pop@data[,3:13] %>% mutate_if(is.numeric, round)