如何将 data.frame 转换为 SpatialPolygonsDataFrame

How to convert data.frame to SpatialPolygonsDataFrame

也许这很简单,但我现在很困惑。 我有一个 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)

This is what my console shows me抱歉,我没有足够的声誉来发布图像。

您需要将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)