Oi gente, eu tenho um pesadelo.
Preciso fazer umas análises dependentes da latitude, mas descobri que a minha base de dados tá assim:
A tibble: 70,447 x 2
LATITUDE LONGITUDE
1 489.174.224 -686.275.291
2 491.000.000 -1.231.850.000
3 470.773.411 -708.055.544
4 492.213.299 -1.232.110.997
5 491.000.000 -1.231.850.000
6 491.000.000 -1.231.850.000
7 432.994.004 -798.015.118
8 492.213.299 -1.232.110.997
9 492.213.299 -1.232.110.997
10 439.347.222 -783.763.889
… with 70,437 more rows
Ou seja, a pontuação tá toda errada. A primeira linha, por exemplo, tinha que ser lat = 48. 917422 e long = -68.627529 (latitude não pode passar de 180 e longitude de 360, e depois do ponto tem que ter até 6 dígitos). Existe salvação???
Athos
Junho 14, 2020, 4:35pm
2
library(tidyverse)
dados <- tribble(
~LATITUDE, ~LONGITUDE,
"489.174.224", "-686.275.291",
"491.000.000", "-1.231.850.000",
"470.773.411", "-708.055.544",
"492.213.299", "-1.232.110.997"
)
arruma_coord <- function(coords) {
coords <- coords %>%
str_replace_all("\\.", "") %>% # troca os pontos por nada
as.numeric() # converte o texto em numeric
# retorna os valores divididos por 10 milhoes e arredonda na sexta casa decimal
round(coords/1e7, 6)
}
dados %>%
mutate(
latitude = arruma_coord(LATITUDE),
longitude = arruma_coord(LONGITUDE)
)
#> # A tibble: 4 x 4
#> LATITUDE LONGITUDE latitude longitude
#> <chr> <chr> <dbl> <dbl>
#> 1 489.174.224 -686.275.291 48.9 -68.6
#> 2 491.000.000 -1.231.850.000 49.1 -123.
#> 3 470.773.411 -708.055.544 47.1 -70.8
#> 4 492.213.299 -1.232.110.997 49.2 -123.
Created on 2020-06-14 by the reprex package (v0.3.0)
1 curtida
athos, ficou lindíssimo, mt obgd!!