2 Classes de representação espaço temporal
No Rcitrus, foram implementadas outras classes para possibilitar a representação espaço-temporal.
Essas classes facilitam a manipulação e as análises estatísticas. As classes utilizadas são adaptações
das classes array do pacote básico, geodata do pacote geoR (?) e Surv do pacote Survival (?). Para
particularizar essas classes usadas para dados de plantas, o objeto é identificado como sendo da classe
citrus, além dessas.
2.1 Classes citrus e array
É utilizado um array com três dimensões, em que a primeira dimensão indica a linha de plantas, a
segunda indica as plantas na linha e a terceira indica as avaliações feitas em tempos diferentes. Este
formato de dados é particularmente útil na análise por quadrats. Os dados de Pinta Preta em Itajobi,
estão em um data.frame. Usando a função as.citrus para podemos converte-lo para
array.
> fram.ita <- as.citrus(ita, find.form = "array")
Inspencionando o objeto:
Disease plant data in 1 evaluations of
62 rows of plants and 58 plants in each row.
Também podemos usar a função as.citrus() para converter os dados do talhão 303,
considerando os dados de mais de uma avaliação e os atributos do talhão. Basta usar os demais
argumentos da função:
function (data, find.form = c("array", "geodata", "Surv"), nrow = NULL,
row.id = NULL, col.id = 1, n.att = NULL, col.nam.att = 1,
col.val.att = 2, pos.date = -2, x = NULL, y = NULL, cod.start = 0:2,
cod.event = 1:3, order = "dmy", ref.date = "01/01/2001")
NULL
Deve-se informar: o número de ruas no talhão (nrow), a identificação da primeira rua do talhão (row.id),
coluna com os códigos identificadores (col.id), número de atributos do talhão (n.att),
coluna onde estão os nomes dos atributos (col.nam.att), coluna onde estão os valores dos
atributos (col.val.att) e posição onde estão as datas de avaliações em relação aos dados
(pos.date)
> o303.array <- as.citrus(ori303, nrow = 20, row.id = 1, n.att = 13)
Inspensionando o objeto:
Disease plant data in 25 evaluations of
20 rows of plants and 48 plants in each row.
> names(attributes(o303.array))
[1] "dim" "Municipio" "Propriedade" "Proprietario"
[5] "Talhao" "Variedade" "PortaEnxerto" "LinhasPlantas"
[9] "PlantasLinhas" "EntreLinhas" "DentroLinhas" "Plantio"
[13] "Latitude" "Longitude" "dimnames" "class"
$Rows
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14"
[15] "15" "16" "17" "18" "19" "20"
$Cols
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14"
[15] "15" "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" "27" "28"
[29] "29" "30" "31" "32" "33" "34" "35" "36" "37" "38" "39" "40" "41" "42"
[43] "43" "44" "45" "46" "47" "48"
$Evals
[1] "08/01/2001" "08/08/2001" "08/16/2001" "08/22/2001" "08/29/2001"
[6] "09/06/2001" "09/12/2001" "09/25/2001" "10/06/2001" "10/10/2001"
[11] "11/07/2001" "12/06/2001" "01/08/2002" "02/12/2002" "03/15/2002"
[16] "04/05/2002" "04/24/2002" "05/08/2002" "06/03/2002" "08/05/2002"
[21] "01/10/2003" "02/10/2003" "03/06/2003" "04/14/2003" "05/09/2003"
Pode-se ver facilmente a evolução do status de uma planta ao longo das avaliações. Por exemplo, a
planta 3 da linha 10:
08/01/2001 08/08/2001 08/16/2001 08/22/2001 08/29/2001 09/06/2001
"0" "0" "0" "0" "0" "0"
09/12/2001 09/25/2001 10/06/2001 10/10/2001 11/07/2001 12/06/2001
"0" "0" "0" "0" "0" "0"
01/08/2002 02/12/2002 03/15/2002 04/05/2002 04/24/2002 05/08/2002
"0" "0" "0" "0" "0" "1"
06/03/2002 08/05/2002 01/10/2003 02/10/2003 03/06/2003 04/14/2003
"1" "1" "3" "3" "3" "3"
05/09/2003
"3"
attr(,"Municipio")
[1] "Comendador Gomes"
attr(,"Propriedade")
[1] "Vale Verde"
attr(,"Proprietario")
[1] ""
attr(,"Talhao")
[1] "303"
attr(,"Variedade")
[1] "Valencia"
attr(,"PortaEnxerto")
[1] "Cravo"
attr(,"LinhasPlantas")
[1] "20"
attr(,"PlantasLinhas")
[1] "48"
attr(,"EntreLinhas")
[1] "7.5"
attr(,"DentroLinhas")
[1] "4"
attr(,"Plantio")
[1] "1991"
attr(,"Latitude")
[1] ""
attr(,"Longitude")
[1] ""
2.2 Classe citrus e geodata
A classe geodata no geoR é uma lista contendo basicamente dois elementos: coords, da classe
matrix com duas colunas representando as coordenadas das plantas no talhão, e data, da classe
numeric com os atributos observados em cada planta. No Rcitrus, o elemento data é um
data.frame onde cada coluna é uma avaliação no tempo e cada linha contém atributos e uma
planta no tempo. Além disso há um elemento adicional, date, da classe character com
as datas das avaliações. Este formato é utilizado para aplicação de análise de processos
pontuais.
Pode-se converter dados de uma ou mais avaliações para o formato geodata, usando a função
as.citrus() e colocando a opção find.form=’geodata’.
No caso de converter dados de uma única avaliação, dispostos em um simples data.frame, os
dados de Itajobi por exemplo, deve-se informar o espa
mento entre linhas x e dentro das linhas
y:
> geo.ita <- as.citrus(ita, find.form = "geodata", x = 8, y = 4)
Carregando pacotes exigidos: geoR
x = 8 y = 4
Ao digitar o nome do objeto temos a descrição sucinta dos dados:
Disease plant data in 1 evaluations of
62 rows of plants and 58 plants in each row.
Inspencionando o objeto:
$coords
NULL
$data
[1] "e1"
$other
[1] "dates"
A conversão dos dados de msc do talhão 303, pode ser feita de forma semelhante à conversão para
array e adicionando find.form="geodata". Neste caso, não é necessário informar o espaçamento,
pois este já é informado nos atributos do talhão:
> o303.geo <- as.citrus(ori303, find.form = "geodata", nrow = 20,
+ row.id = 1, n.att = 13)
Inspencionando o objeto:
Disease plant data in 25 evaluations of
20 rows of plants and 48 plants in each row.
$coords
NULL
$data
[1] "e1" "e2" "e3" "e4" "e5" "e6" "e7" "e8" "e9" "e10" "e11"
[12] "e12" "e13" "e14" "e15" "e16" "e17" "e18" "e19" "e20" "e21" "e22"
[23] "e23" "e24" "e25"
$other
[1] "dates"
2.3 Classe citrus e Surv
A classe Surv é um objeto que contém informações do tempo de progresso da doença. No Rcitrus, é
uma lista contendo: coords com as coordenadas das plantas no talhão e data com duas colunas: a
primeira da classe Surv com tempo ate ocorrência do evento de interesse em formato padrão para
análise de sobrevivência; e a segunda coluna contendo inteiros indicadores das linhas do
elemento coords. Este formato pode ser usado na análise de sobrevivência com censura
intervalar.
Para exemplo, tomaremos os dados validados do talhao 303, incluido no pacote Rcitrus
sob nome v303.geo. Esses dados estão no mesmo formado do objeto o303.geo, porém
já estão validados. Vamos considerar o evento morte como sendo o de interesse. Nesses
dados as plantas sadias são representadas pelo código 0 (zero) e as mortas pelo código 3
(três).
Carregando os dados:
> data(v303.geo)
> class(v303.geo)
Disease plant data in 25 evaluations of
20 rows of plants and 48 plants in each row.
Basta usar a função citrus.conv para fazer a conversão:
> v303.surv <- citrus.conv(v303.geo, find.form = "Surv", cod.start = 0,
+ cod.event = 3)
Carregando pacotes exigidos: survival
Carregando pacotes exigidos: splines
Inspencionando os dados
[1] "coords" "data" "dates" "n.subst.code"
[5] "unselect" "invalids"
Os intervalos de tempo das dez primeiras plantas do talhão:
left right
1 248 833
2 248 NA
3 282 NA
4 339 NA
5 310 770
6 267 NA
7 248 NA
8 282 833
9 267 739
10 339 833
Observa-se que a planta da posição 158 já tinha sintomas de msc na primeira avaliação e não
chegou à morte na última avaliação:
> v303.geo$data[155:160, ]
Av1 Av2 Av3 Av4 Av5 Av6 Av7 Av8 Av9 Av10 Av11 Av12 Av13 Av14 Av15 Av16
155 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
156 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
157 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1
158 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2
159 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
160 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Av17 Av18 Av19 Av20 Av21 Av22 Av23 Av24 Av25
155 1 1 1 1 1 1 1 3 3
156 2 2 2 3 3 3 3 3 3
157 1 1 1 2 2 2 2 3 3
158 2 2 2 2 2 2 2 2 2
159 1 1 1 1 1 1 1 1 1
160 1 1 1 1 1 1 1 1 1
Então:
> v303.surv$data[155:160, ]
left right
155 282 833
156 282 581
157 240 833
158 NA NA
159 282 NA
160 267 NA