首页 > 解决方案 > 如何将 data.frame 转换为 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)

这是我的控制台向我显示的内容对不起,但我没有足够的声誉来发布图像。

标签: rdataframespdf

解决方案


您需要分配dfdf %>% 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)

推荐阅读