Home > Software design >  Problem with decimalLongitude and decimalLatitude for create a SpatiaPointDataframe
Problem with decimalLongitude and decimalLatitude for create a SpatiaPointDataframe

Time:12-10

I'm new in R and I'm trying to learn.

I have a giant dataframe from Gbif (900.000 rows) with name of my species and decimalLongitude and decimalLatitude but when I tried to create a SpatialPointDataframe as always with coordinates(data.frame) <- ~ lon lat function (I changed before the name of columns from decimalLongitude in lon ecc... and I deleted the name of species, so I have only a "lon, lat and species=1" as always in my analysis):

Here is the head() function from my dataframe

lon            lat      species
1  4.841.452   5317168       1
2 10.380.893  48888992       1
3 12.999.839  52388378       1
4  1.002.614  53190685       1
5  8.820.133  50520302       1

and R replied: #Error in .local(obj, ...): cannot derive coordinates from non-numeric matrix

So I see the dataframe and I noticed that my coordinates are a little bit strange.

Do you have some ideas? I need to convert the coordinates?
I looked but I didn't find a solution. Thank you for spend your time for answer me.

I hope you have a good day and good work!

CodePudding user response:

The problem you have is that the lon column is of class character and not of class numeric. So you need to convert this column. Please find one possible solution (cf. reprex below).

Reprex

  • Your data
points <- read.table(text = "lon            lat      species
1  4.841.452   5317168       1
2 10.380.893  48888992       1
3 12.999.839  52388378       1
4  1.002.614  53190685       1
5  8.820.133  50520302       1", header = TRUE) 
  • Code
library(raster)

# Convert 'lon' column into numeric
points$lon <- as.numeric(gsub("\\." ,"", points$lon))

# converting to SpatialPointsDataFrame
coordinates(points) <- ~lon lat
  • Output
points
#> class       : SpatialPointsDataFrame 
#> features    : 5 
#> extent      : 1002614, 12999839, 5317168, 53190685  (xmin, xmax, ymin, ymax)
#> crs         : NA 
#> variables   : 1
#> names       : species 
#> min values  :       1 
#> max values  :       1

Created on 2021-12-10 by the reprex package (v2.0.1)

  • Related