sbl_bah
December 28, 2019, 4:16pm
1
Hello,
After using the sf::st_centroid function point<-st_centroid(map)
, I get the following output
CODE geometry
1 T1 c(2.3428828903353, 48.8566258524875)
2 T2 c(2.28399910670902, 48.7819047955817)
3 T3 c(2.21992924736305, 48.8189253283551)
4 T4 c(2.21085169860309, 48.8750398323371)
5 T5 c(2.26906485768456, 48.9343606880188)
6 T6 c(2.36329387765033, 48.9356023370997)
7 T7 c(2.50700090863566, 48.9535727259267)
8 T8 c(2.44397382669959, 48.8877991017321)
9 T9 c(2.54231641904574, 48.8827576906768)
10 T10 c(2.48877839063982, 48.8223141349327)
11 T11 c(2.52861726117573, 48.7611485070806)
12 T12 c(2.38244027640969, 48.7476770877747)
I would like a new table that adds two columns X and Y and in the new columns extract the values of c(x,y) that will be distributed in the columns X and Y.
I've tried the following
pts<-point %>%
mutate(Xi=geometry(c[1])) %>%
mutate(Yi=geometry(c[2]))
The error message is : Error in c[1] : objet de type 'builtin' non indiçable
Do you have any idea how I can do that?
Thanks in advance
The function st_coordinates
in sf
is what you are looking for. Look at the example below:
library(sf)
#> Linking to GEOS 3.7.2, GDAL 2.4.2, PROJ 5.2.0
library(tigris)
#> To enable
#> caching of data, set `options(tigris_use_cache = TRUE)` in your R script or .Rprofile.
#>
#> Attaching package: 'tigris'
#> The following object is masked from 'package:graphics':
#>
#> plot
options(tigris_class = "sf")
StateSF <- tigris::states(cb=TRUE)
StateSFCentroid <- StateSF %>%
sf::st_centroid()
#> Warning in st_centroid.sf(.): st_centroid assumes attributes are constant
#> over geometries of x
#> Warning in st_centroid.sfc(st_geometry(x), of_largest_polygon =
#> of_largest_polygon): st_centroid does not give correct centroids for
#> longitude/latitude data
pts <- st_coordinates(StateSFCentroid)
head(pts)
#> X Y
#> 1 -80.61371 38.64259
#> 2 -89.19839 40.06503
#> 3 -76.77245 39.03691
#> 4 -114.65937 44.38908
#> 5 -72.66265 44.07519
#> 6 -72.72570 41.62028
head(StateSFCentroid$geometry)
#> Geometry set for 6 features
#> geometry type: POINT
#> dimension: XY
#> bbox: xmin: -114.6594 ymin: 38.64259 xmax: -72.66265 ymax: 44.38908
#> epsg (SRID): 4269
#> proj4string: +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs
#> First 5 geometries:
#> POINT (-80.61371 38.64259)
#> POINT (-89.19839 40.06503)
#> POINT (-76.77245 39.03691)
#> POINT (-114.6594 44.38908)
#> POINT (-72.66265 44.07519)
Created on 2019-12-28 by the reprex package (v0.3.0)
sbl_bah
December 28, 2019, 5:39pm
3
thanks.
But I want also keep the column CODE. When I've made st_coordinates
I have only the coordinate X,Y. Is it possible to keep the column CODE?
sbl_bah
December 28, 2019, 6:29pm
4
I used cbind and it's OK
pt_centroid<-map %>% sf::st_centroid()
pts<-st_coordinates(pt_centroid)
p<-cbind(pts,pt_centroid)
Thanks to your help!
system
Closed
January 4, 2020, 6:29pm
5
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.