Este script tem como objetivo organizar os dados coletados (pontos de GPS) pelo Kobotool para serem usados no Qgis, na elaboração de mapas temáticos. Os dados originais provém do aplicativo kobotols <https://www.kobotoolbox.org/>, coletados para um trabalho de elaboração demapas temáticos da area dos assentamentos de Palmas, PR. Em cada propriedade visitada, foram coletados entre 1 a 5 pontos na área agrícola. Os dados dos pontos estão em uma linha, e sua utilização exige que estejam organizados de forma a que cada ponto (Lat, Long, Alt e número do ponto), esteja em uma coluna. Ou seja, de cada linha, deve ter de 1 a 5 novas colunas.
O script foi escrito em duas mãos. Inicialmente o Adenor fez o script, com suas possibilidades, e posteriormente o José escreveu a parte do pivot_longer. Ao final, um mapa com os pontos, para demonstra o resultado.
# 2. Organizar os dados coletados
## 2.1. Importar os dados
```{r}
#Pontos <- read.csv("training/wrangling/Coleta_Assentamento_SL_1.csv", sep=";") #para rodar com "run"
O arquivo possui algumas linhas sem informações. Esses erros ocorreram durante o período de coleta, especialmente durante os testes, e essas linhas precisam ser eliminados do arquivo. Por sorte, esses arquivos possue NA na coluna Ponto_1_Lat.
## 2.3. Eliminar linhas vazias
```{r, echo=FALSE}
PontosRen<-PontosRe%>%
filter(!is.na(Ponto_1_Lat))
```
## 2.4. Organizar tabela
Como já foi relatado na introduão, os dados dos pontos de 1 a 5 estão na mesma linha e em colunas distintas, por estabelecimento, e é necessário que estejam em linhas separadas, porém na mesma coluna.
Para isso será utilizado o comando **pivot_longer()** para **Alongar** a tabela.
Inicialmente a tabela original será dividida em , sendo uma com as colunas com final "Unico", outra com final "Lat", outra com final "Long, outra última com final "Alt"e a última com fianl "GPS". Feito isso, todas serão alongadas, criando 5 tabelas, cada uma contendo uma das informações relevantes em uma única coluna. Finalmente, as cinco tabelas serão reunidas novamente.
Temos agora cinco tabelas contendo 11 linhas e 5 colunas cada. As tabelas são: Unico, Latitudes, Longitudes, Altitudes e GPS.
## 2.5. Alongamento das tabelas - Adenor
Foram "alongadas" os arquivos criados acima, para ter as colunas com todos os dados necessários.
```{r Alongando}
Unico_longer <- Unico%>%
pivot_longer(cols = ends_with("Unico"),
names_to = "Set")
Lat_longer<-Latitudes%>%
pivot_longer(cols = ends_with("Lat"),
names_to = "Lat")
Long_longer<-Longitudes%>%
pivot_longer(cols = ends_with("Long"),
names_to="Long")
Alt_longer<-Altitudes%>%
pivot_longer(cols = ends_with("Alt"),
names_to="Alt")
GPS_longer<-GPS%>%
pivot_longer(cols = ends_with("GPS"),
names_to="GPS")
```
Temos agora 5 tabelas, sendo cada uma contendo 55 linhas e 5 colunas. O próxima passa é unir novamente essas tabelas, para que possamos ter uma tabelas com 55 linhas, e com as culunas de Lat, Long, Alt, GPS.
## 2.5.1. União das tabelas alongadas
```{r unir}
Pontos_Col <- bind_cols(
Alt_longer,
Long_longer,
Lat_longer,
Unico_longer,
GPS_longer
)
colnames(Pontos_Col)
```
Com esse comando, a tabela nova possuem várias colunas desnecessárias, criadas em cada pivot_longer, como segue:
"" "value...5""" - que é o valor de Altitude; "Ponto_Nome...6" "moradia...7" "area...8" [9] "Long" "" "value...10""" que é o valor da Longitude; "Ponto_Nome...11" "moradia...12" "area...13" "Lat" """value...15" "" que é o valor de Latitude; "Ponto_Nome...16" "moradia...17" "area...18" "Set" "" "value...20" "" que é ovalor de Unico; [21] "Ponto_Nome...21" "moradia...22" "area...23" "GPS" "" "value...25" "" que é o valor do ponto de GPS.
Por isso, vai mas um chunk só para eliminar essas colunas desnecessárias
## 2.5.2. Limpeza da tabela
```{r unir2}
Pontos_Colu <- Pontos_Col%>%
select(
Ponto_Nome...1,
moradia...2,
area...3,
value...25,
value...5,
value...10,
value...15,
value...20,
)%>%
filter(value...5>0)
Pontos_Colu
```
Da mesma forma que foram criadas várias colunas no pivot_longer, no processo de bind_cols essas colunas foram juntadas, e as de mesmo nome, foram renomeadas inconvenientemente.
Lá vai mais um chunk para dar nomes de boi aos bois.
### 2.5.3. Renomeação das colunas
```{r}
Pontos_Colun <- Pontos_Colu%>%
rename(
nome = "Ponto_Nome...1",
moradia = "moradia...2",
area = "area...3",
Ponto="value...25",
Altit = "value...5",
Longit = "value...10",
Latit = "value...15",
Unica = "value...20"
)
```
Finalmente, após longos atalhos, está pronta a nossa tabela, contendo uma coluna de Lat, uma para Long e uma para Alt, com as demais colunas acessóarias necessárias. Vejamos que agora temos apenas 31 linhas, e não 55 como havia acima. Isso se deu já que foram eliminadas as linhas sem dados, com o comando filter.
```{r}
Pontos_Colun
```
## 2.6 Pivot_longer @José
@jose: Outra opção para alongar a tabela e renomear as colunas no mesmo código que alonga a tabela é incluir os nomes da colunas que terá os valores "values_to"
Também. o filtro para eliminar células sem dado pode ser aplicado no mesmo código, aproveitando o "pippin" (%>%)
### 2.6.1. Pivot longer com as especificações
Foram utilizadas as mesmas tabelas criadas no chunk "Repartir_Tables", mas com especificações na saída de cada pivot_longer, evitando criação de colunas com nomes iguais.
```{r}
Unico_Longer.2 <- Unico%>%
pivot_longer(
cols = ends_with("Unico"),
names_to = "Set",
values_to = "Unica"
)%>%
filter(Unica!= "")
Unico_Longer.2
```
Nesta primeira tabela foram mantidos os dados de nome, moradia e área. Nas pŕoximas tabelas esses serão eliminados com o comando select, pois, as colunas redundantes podem ser retiradas das próximas tabelas, já que parece que ao deixar padronizadas as linhas em 21 a ordem da coluna indicadora não se modifica e todas as tabelas ficam na mesma ordem
```{r}
Lat_Longer.2 <- Latitudes%>%
pivot_longer(
cols = ends_with("Lat"),
names_to = "Lat",
values_to = "Latit"
)%>%
filter(Latit!= "")%>%
select(Latit)
Lat_Longer.2
```
```{r}
Long_Longer.2 <- Longitudes%>%
pivot_longer(
cols = ends_with("Long"),
names_to = "Long",
values_to = "Longit"
)%>%
filter(Longit!= "")%>%
select(Longit)
```
```{r }
Alt_longer.2 <- Altitudes%>%
pivot_longer(
cols = ends_with("Alt"),
names_to = "Alt",
values_to = "Altit"
)%>%
filter(Altit!= "")%>%
select( Altit)
```
```{r }
GPS_longer.2 <- GPS%>%
pivot_longer(
cols = ends_with("GPS"),
names_to = "GPS",
values_to = "Ponto"
)%>%
filter(Ponto!= "")%>%
select(Ponto)
```
Apresentamos apenas as tabela Lat_Longer.2, já que as outras na sequência apresentam a mesma lógica, contendo apenas uma coluna.