From 6cfa773444a87c38fb408b853027bb4b082d010c Mon Sep 17 00:00:00 2001 From: Adenor Date: Thu, 28 Sep 2023 15:25:12 -0300 Subject: [PATCH] =?UTF-8?q?envio=20com=20inclus=C3=A3o=20da=20linha=20de?= =?UTF-8?q?=20ugms,=20mas=20falta=20resolver=20a=20inclus=C3=A3o=20da=20li?= =?UTF-8?q?nha=20e=20outras=20coisas.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EvolucaoVitruvio.R | 26 + EvolucaoVitruvio.html | 1324 ++++++++++++++++++++++++++ EvolucaoVitruvio.html~ | 1520 ++++++++++++++++++++++++++++++ EvolucaoVitruvio.org | 240 ++--- data/ResumoEvolucaoVitruvio.csv | 7 + data/ResumoEvolucaoVitruvio.csv~ | 7 + data/Tabela3.csv | 10 + fig/Evoluc1.png | Bin 0 -> 21038 bytes 8 files changed, 2976 insertions(+), 158 deletions(-) create mode 100644 EvolucaoVitruvio.R create mode 100644 EvolucaoVitruvio.html create mode 100644 EvolucaoVitruvio.html~ create mode 100644 data/ResumoEvolucaoVitruvio.csv create mode 100644 data/ResumoEvolucaoVitruvio.csv~ create mode 100644 data/Tabela3.csv create mode 100644 fig/Evoluc1.png diff --git a/EvolucaoVitruvio.R b/EvolucaoVitruvio.R new file mode 100644 index 0000000..b274f93 --- /dev/null +++ b/EvolucaoVitruvio.R @@ -0,0 +1,26 @@ +library (data.table) + library(tidyr) +library(dplyr) + library (ggplot2) + +Evol_exist <- fread("data/Tabela4.csv", check.names =FALSE, header=TRUE) + str(Evol_exist) + +#Transpor a tabela +Evol_exist1<-dcast(melt(Evol_exist, id.vars="Ano"),variable ~Ano) +# deu um trabalho para n ão aparecer uma linha nova com os nomes da colunas... +str(Evol_exist1) +Evoluc<-Evol_exist1%>% + pivot_longer(!variable, names_to="Categoria", values_to="Cabecas")%>% + dplyr::mutate(Ano=variable) +#View(Evoluc) +str(Evoluc) + +Evoluc<-ggplot(Evoluc, aes(x=Ano, y=Cabecas, group = Categoria))+ + geom_line (aes(color=Categoria))+ + geom_point(aes(color=Categoria)) + getwd() +png(filename="fig/Evoluc1.png") +plot(Evoluc) + + Evoluc diff --git a/EvolucaoVitruvio.html b/EvolucaoVitruvio.html new file mode 100644 index 0000000..cb1b600 --- /dev/null +++ b/EvolucaoVitruvio.html @@ -0,0 +1,1324 @@ + + + + + + +Evolução de rebanho leiteiro em PRV + + + + + + + + + + + + + + +
+

Evolução de rebanho leiteiro em PRV

+ + + + +
+

1. TODO

+
+

+Continuar planilha +#+startup 2023-08-02 +

+ + +

+Vou estudar o emacs calc, tentando elaborar uma planilha para evolução do +

+ + + +

+Vou utilizar os manuais on line https://orgmode.org/manual/Field-and-range-formulas.html +e https://orgmode.org/org.html#Built_002din-Table-Editor +

+
+
+ +
+

2. Indices

+
+

+IP = intervalo entre partos (12 meses) (setq IP "12") +

+ +

+PP = primeiro parto (24 meses) (setq PP "24") +

+ +

+PL = Período de lactação (10 meses)(setq PL "10") +

+ +

+CL = capacidade de lotação (20UGM) (setq CL "20") +IndMor = Indice de mortalidade de bezerras +IRP = Índice de renovação do plantel - substituição de vacas velhas ou ruins +

+
+
+ + +
+

3. Relação UGM e categoria animal

+
+ + + +++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1: UGM de referência de acordo com a categoria animal
Cataegoria animalUGMabrev
Vacas em lactação1vaca
Vacas secas1vase
Bezerras até 12 meses0.25Beze
Novilhas até 18 meses0.50No18
Novilhas até 24 meses0.75No24
Outros1Outr
+ +

+Os dados acima são padronizados, sendo que, por padrão, 1 UGM equivale a 500 kg de peso vivo. Desta forma, pode ser necessário ajustar as UGMs e acordo com o peso dos animais de cada fazenda. +

+
+
+
+

4. Composição do Rebanho

+
+

+A composição do rebanho de cada estabelecimento varia conforme os objetivos, índices e manejo adotado. De modo geral busca-se uma composição com maior participação de categorias produtivas, ou seja, em caso de atividade leiteira, busca-se maior número de animais na categoria vacas em lactação. +Os dados da tabela 2 refletem a composição de um rebanho com finalidade de produção de leite, considerando um manejo reprodutivo e de alimentação excelentes. +

+ + + + +++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 2: Composição ideal em porcentagem , número de animais e UGM, com base em 10 vacas em lactação.
Categoria de animaisCabeças%cab%UGM%UGM
Vacas em lactação1851.41876.9
Vacas secas29.5212.1
Bezerras ate 12 meses1032.32.52.8
Novilhas até 18 meses39.11.56.2
Novilhas até 24 meses00.00.0.0
Outros animais 0.000.0
Total33100.024.100.0
+ + + +

+A composição do rebanho é dinâmico, com espectativa de crescimento ao longo do tempo, até alcançar o limite de suporte das pastagens +ou de outro limitante definido pela infraestrutura ou de trabalho da fazenda. A espectativa de crescimento se deve à previsão de 1 parto anual +por vaca, que gera um incremento anual de 50% de fêmeas em relação ao número de vacas, e do descarte de 25% das vacas. +Quando for atingido o limite de vacas na fazenda, pode-se vender o excedente de fêmeas em idade de terneiras, novilhas prenhas, ou vacas, +de acordo com a conveniência da fazenda. Entretanto, o limite é medido em UGM, o que também vai limitar a opção pela venda de animais maiores. +Com base nos índices definidos em conjunto com a fazenda, estimamos que a evolução do rebanho de apresente conforme a tabela 3, ressalvando que +esses valores não são absolutos, pois podem ocorrer imprevistos que alterem a evolução. Da mesma forma, havendo alteração nos índices esperados, +haverá impacto na evolução do rebanho, o que não caracteriza necessariamente erro de previsão ou de manejo. +

+
+
+ + + +
+

5. Tabela inicial, com o dimensionamento atual e previsão de entradas e saídas de animais

+
+

+Os dados desta tabela deve ser alterados conforme necessário para alcançar a evolução do rebanho desejada. +As tabelas de composição de rebanho serão calculadas automáticamente, com base nos dados anotados na tabela <Tab0>. +

+ + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 3: Entradas e saídas de animais do rebanho durante os primeiros 6 anos (até estabilizar)
Constanteano 1ano 2ano 3ano 4ano 5ano ..observação
Partos/vaca/ano111111 
Vacas Existentes00------ a calcular
Novilhas exist.00------ a calcular
Bezerras existentes0------ a calcular
Novilhas >- vacas000000NÃO ALTERAR
% Bezerras -> novilhas0.40.40.750.70.70.7% SNascidos
Vacas a vender000054 
Novilhas a vender000000 
Bezerras a vender0410121514 
Vacas a comprar000000 
Novilhas a comprar2000000 
Bezerras a compras000000 
+ +

+Com a evolução estimada através dos indicadores: +. 1 parto por vaca por ano; +. Primeiro parto aos 18 meses +. Descarte de 25% das vacas a partir do 3º ano +. Capacidade de suporte para 40 vacas +. Aproveitamento de 40% dos nascidos para repsição +Temos o seguinte: +>> Iniciamos com 20 vacas +>> Compramos 5 novilhas cobertas +>> No segundo ano serão compradas 2 novilhas +

+
+
+ + +
+

6. Composição anual do rebanho da fazenda

+
+
+
+

6.1. Ano 1

+
+ + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 4: Composição do rebanho na fazenda VITRUVIO (ANO 1)
CategoriaExttAntTIRCompraVendaSaldoTICExttFin
VACAS >240000000
NOVILHAS 12<>240020020200
BEZERRAS <120000000
Outros 000 00
+ + +

+Na tabela 4 consta o número de animais para cada categoria, com as ocorrencias do ano. No caso das vacas, não há alteração, visto que não há entradas, nem saídas, e o número inicial é o mesmo do final. No caso das novilhas, há movimentação, com a transferência interna de 5 (que passam de bezerras para novilhas), compra de 2, e transferência cedendo 5 para serem vacas no próximo ano. Assim, o ano inicia com 1 novilha, e termina com 3. +

+
+
+ + +
+

6.2. Ano 2

+
+ + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 5: Composição do rebanho na fazenda VITRUVIO (ANO 2)
CATEGORIAEXTTANTTIRCOMPRAVENDASALDOTICEXTTFIN
VACAS >240200020020
Novilhas 12<>240000000
Bezerras <120804440
outros       
+ +

+Comentários sobre tabela 5 +

+
+
+
+

6.3. Ano 3

+
+

+Na tabela 3.3 podemos observar… +

+ + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 6: Composição do rebanho na fazenda VITRUVIO (ANO 3)
CATEGORIAEXTTANTTIRCOMPRAVENDASALDOTICEXTTFIN
VACAS >242000020020
Novilhas 12<>240400440
Bezerras <12015010550
outros       
+

+Comentários sobre a tabela 6 +

+
+
+ +
+

6.4. Ano 4

+
+ + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 7: Composição do rebanho na fazenda VITRUVIO (ANO 4)
CATEGORIAEXTTANTTIRCOMPRAVENDASALDOTICEXTTFIN
VACAS >242040024024
Novilhas 12<>240500550
Bezerras <12017012550
outros1      
+ +

+Comentários da tabela 7 +

+
+
+
+

6.5. Ano 5

+
+

+:TABLEEXPORTFILE: Documents/Tabela 3.5.csv +:TABLEEXPORTFORMAT: orgtbl-to-csv +

+ + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CATEGORIAEXTTANTTIRCOMPRAVENDASALDOTICEXTTFIN
VACAS >242450524024
Novilhas 12<>240500550
Bezerras <12017012550
outros1   1 1
        
+ +

+Comentários da tabela 8 +

+
+
+ +
+

6.6. Ano 6

+
+

+e, finalmente, na tabela 9, a composição do rebanho no sexto ano após a implementeação e adoção do PRV na propriedade VITRUVIO. +

+ + + + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 8: Composição do rebanho na fazenda VITRUVIO (ANO 6)
CATEGORIAEXTTANTTIRCOMPRAVENDASALDOTICEXTTFIN
VACAS >242450425025
Novilhas 12<>240500550
Bezerras <12018014440
outros1      
+
+
+
+ + + +
+

7. Resumo da evolução

+
+

+Esta tabela é a que efetivamente interessa para ser apresentada ao cliente, ou para análise técnica, pois apresenta o resumo (resultado da evolução) proposto para a fazenda. +

+ +

+Tabela com os dados resumidos referente aos animais existentes anualmente +Os dados da tabela abaixo resultam da estimativa de evolução de rebanho, de acordo com os dados da tabela de dados. +

+
+ +
+

7.1. Entradas e saídas

+
+ + + +++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ano200420052006200720082009
Vacas entradas000000
Novilhas entradas2000000
Terneiras entradas000000
Total entradas20000200
Vacas saídas000054
Novilhas saídas000000
Terneiras saídas0410121214
Total saídas0410121718
       
+
+
+ +
+

7.2. Animais existentes

+
+

+:TABLEEXPORTFILE: data/Tabela4.csv +:TABLEEXPORTFORMAT: orgtbl-to-csv +

+ + + +++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Categoria200420052006200720082009
Vacas02020242425
Novilhas2004555
Terneiras045554
Tcab202429343434
TUGMs20.21.25.2530.531.531.75
       
+

+@5$8=@2$8+@3$8+@4$8::@6$3=(@2$3*remote(Tab1,@2$2)+@3$3*remote(tab1,@3$2)+@4$3*remote(tab1,@4$2))::@6$4=(@2$4*remote(Tab1,@2$2)+@3$4*remote(tab1,@3$2)+@4$4*remote(tab1,@4$2))::@6$5=(@2$5*remote(Tab1,@2$2)+@3$5*remote(tab1,@3$2)+@4$5*remote(tab1,@4$2))::@6$6=(@2$6*remote(Tab1,@2$2)+@3$6*remote(tab1,@3$2)+@4$6*remote(tab1,@4$2))::@6$7=(@2$7*remote(Tab1,@2$2)+@3$7*remote(tab1,@3$2)+@4$7*remote(tab1,@4$2))::@6$8=(@2$8*remote(Tab1,@2$2)+@3$8*remote(tab1,@3$2)+@4$8*remote(tab1,@4$2)) +

+
+
+
+ +
+

8. TODO Resolver exportar ou criar data.tabela. Para continuar, é necessário exportar a Tabela acima. Faço pelo menu Table - Export to file. Nome do Arquivo a exportar = Tabela$.csv.>>

+
+
+
+

8.1. Gráfico resumo

+
+
+
	library(data.table)
+	library(tidyr)
+library(dplyr)
+REV<-fread("~/Documentos/GITs/Compos_rebanho/data/ResumoEvolucaoVitruvio.csv",  header=TRUE)
+	REv<- REV%>%
+		pivot_longer (cols=c("2004", "2005", "2006", "2007", "2008", "2009"),
+		names_to="Ano",
+		values_to="Quantidade",
+			values_drop_na = TRUE )
+
+REv$Ano=as.numeric(REv$Ano)
+View(REv)
+#end_src
+
+#+NAME: grafico resumo
+#+begin_src R
+	library (ggplot2)
+
+test1<-ggplot(REv, aes(Ano,
+				  Quantidade,
+			  colour=Categoria))+
+							   geom_line()
+test1
+
+
+
+
+ +
+

8.2.

+
+
+
+
+

Date: 08-31-2023

+

Author: Adenor Wendling

+

Validate

+
+ + diff --git a/EvolucaoVitruvio.html~ b/EvolucaoVitruvio.html~ new file mode 100644 index 0000000..8ab678a --- /dev/null +++ b/EvolucaoVitruvio.html~ @@ -0,0 +1,1520 @@ + + + + + + +Evolução de rebanho leiteiro em PRV + + + + + + + + + + + + + + +
+

Evolução de rebanho leiteiro em PRV

+ + + + +
+

1. TODO

+
+

+Continuar planilha +#+startup 2023-08-02 +

+ + +

+Vou estudar o emacs calc, tentando elaborar uma planilha para evolução do +

+ + + +

+Vou utilizar os manuais on line https://orgmode.org/manual/Field-and-range-formulas.html +e https://orgmode.org/org.html#Built_002din-Table-Editor +

+
+
+ +
+

2. Indices

+
+

+IP = intervalo entre partos (12 meses) (setq IP "12") +

+ +

+PP = primeiro parto (24 meses) (setq PP "24") +

+ +

+PL = Período de lactação (10 meses)(setq PL "10") +

+ +

+CL = capacidade de lotação (20UGM) (setq CL "20") +IndMor = Indice de mortalidade de bezerras +IRP = Índice de renovação do plantel - substituição de vacas velhas ou ruins +

+
+
+ + +
+

3. Relação UGM e categoria animal

+
+ + + +++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1: UGM de referência de acordo com a categoria animal
Cataegoria animalUGMabrev
Vacas em lactação1vaca
Vacas secas1vase
Bezerras até 12 meses0.25Beze
Novilhas até 18 meses0.50No18
Novilhas até 24 meses0.75No24
Outros1Outr
+ +

+Os dados acima são padronizados, sendo que, por padrão, 1 UGM equivale a 500 kg de peso vivo. Desta forma, pode ser necessário ajustar as UGMs e acordo com o peso dos animais de cada fazenda. +

+
+
+
+

4. Composição do Rebanho

+
+

+A composição do rebanho de cada estabelecimento varia conforme os objetivos, índices e manejo adotado. De modo geral busca-se uma composição com maior participação de categorias produtivas, ou seja, em caso de atividade leiteira, busca-se maior número de animais na categoria vacas em lactação. +Os dados da tabela 2 refletem a composição de um rebanho com finalidade de produção de leite, considerando um manejo reprodutivo e de alimentação excelentes. +

+ + + + +++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 2: Composição ideal em porcentagem , número de animais e UGM, com base em 10 vacas em lactação.
Categoria de animaisCabeças%cab%UGM%UGM
Vacas em lactação1047.61060.6
Vacas secas29.5212.1
Bezerras ate 12 meses314.30.754.5
Novilhas até 18 meses314.31.59.1
Novilhas até 24 meses314.32.2513.6
Outros animais 0.000.0
Total21100.016.5100.0
+ + + +

+A composição do rebanho é dinâmico, com espectativa de crescimento ao longo do tempo, até alcançar o limite de suporte das pastagens +ou de outro limitante definido pela infraestrutura ou de trabalho da fazenda. A espectativa de crescimento se deve à previsão de 1 parto anual +por vaca, que gera um incremento anual de 50% de fêmeas em relação ao número de vacas, e do descarte de 25% das vacas. +Quando for atingido o limite de vacas na fazenda, pode-se vender o excedente de fêmeas em idade de terneiras, novilhas prenhas, ou vacas, +de acordo com a conveniência da fazenda. Entretanto, o limite é medido em UGM, o que também vai limitar a opção pela venda de animais maiores. +Com base nos índices definidos em conjunto com a fazenda, estimamos que a evolução do rebanho de apresente conforme a tabela 3, ressalvando que +esses valores não são absolutos, pois podem ocorrer imprevistos que alterem a evolução. Da mesma forma, havendo alteração nos índices esperados, +haverá impacto na evolução do rebanho, o que não caracteriza necessariamente erro de previsão ou de manejo. +

+
+
+ + + +
+

5. Tabela inicial, com o dimensionamento atual e previsão de entradas e saídas de animais

+
+

+Os dados desta tabela deve ser alterados conforme necessário para alcançar a evolução do rebanho desejada. +As tabelas de composição de rebanho serão calculadas automáticamente, com base nos dados anotados na tabela <Tab0>. +

+ + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 3: Entradas e saídas de animais do rebanho durante os primeiros 6 anos (até estabilizar)
Constanteano 1ano 2ano 3ano 4ano 5ano ..observação
Partos/vaca/ano111111 
Vacas Existentes20------ a calcular
Novilhas exist.05------ a calcular
Bezerras existentes0------ a calcular
Novilhas >- vacas000000NÃO ALTERAR
% Bezerras -> novilhas0.40.40.40.40.40.4% SNascidos
Vacas a vender0006149 
Novilhas a vender000078 
Bezerras a vender000000 
Vacas a comprar000000 
Novilhas a comprar200000 
Bezerras a compras000000 
+ +

+Com a evolução estimada através dos indicadores: +. 1 parto por vaca por ano; +. Primeiro parto aos 18 meses +. Descarte de 25% das vacas a partir do 3º ano +. Capacidade de suporte para 40 vacas +. Aproveitamento de 40% dos nascidos para repsição +Temos o seguinte: +>> Iniciamos com 20 vacas +>> Compramos 5 novilhas cobertas +>> No segundo ano serão compradas 2 novilhas +

+
+
+ + +
+

6. Composição anual do rebanho da fazenda

+
+
+
+

6.1. Ano 1

+
+ + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 4: Composição do rebanho na fazenda VITRUVIO (ANO 1)
CategoriaExttAntTIRCompraVendaSaldoTICExttFin
VACAS >242000020020
NOVILHAS 12<>245020770
BEZERRAS <120800880
Outros 000 00
+ + +

+Na tabela 4 consta o número de animais para cada categoria, com as ocorrencias do ano. No caso das vacas, não há alteração, visto que não há entradas, nem saídas, e o número inicial é o mesmo do final. No caso das novilhas, há movimentação, com a transferência interna de 5 (que passam de bezerras para novilhas), compra de 2, e transferência cedendo 5 para serem vacas no próximo ano. Assim, o ano inicia com 1 novilha, e termina com 3. +

+
+
+ + +
+

6.2. Ano 2

+
+ + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 5: Composição do rebanho na fazenda VITRUVIO (ANO 2)
CATEGORIAEXTTANTTIRCOMPRAVENDASALDOTICEXTTFIN
VACAS >242070027027
Novilhas 12<>240800880
Bezerras <120110011110
outros1   1 1
+ +

+Comentários sobre tabela 5 +

+
+
+
+

6.3. Ano 3

+
+

+Na tabela 3.3 podemos observar… +

+ + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 6: Composição do rebanho na fazenda VITRUVIO (ANO 3)
CATEGORIAEXTTANTTIRCOMPRAVENDASALDOTICEXTTFIN
VACAS >242780035035
Novilhas 12<>240110011110
Bezerras <120140014140
outros1   1 1
+

+Comentários sobre a tabela 6 +

+
+
+ +
+

6.4. Ano 4

+
+ + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 7: Composição do rebanho na fazenda VITRUVIO (ANO 4)
CATEGORIAEXTTANTTIRCOMPRAVENDASALDOTICEXTTFIN
VACAS >2435110640040
Novilhas 12<>240140014140
Bezerras <120160016160
outros1   1 1
+ +

+Comentários da tabela 7 +

+
+
+
+

6.5. Ano 5

+
+

+:TABLEEXPORTFILE: Documents/Tabela 3.5.csv +:TABLEEXPORTFORMAT: orgtbl-to-csv +

+ + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CATEGORIAEXTTANTTIRCOMPRAVENDASALDOTICEXTTFIN
VACAS >24401401440040
Novilhas 12<>2401607990
Bezerras <120160016160
outros1   1 1
        
+ +

+Comentários da tabela 8 +

+
+
+ +
+

6.6. Ano 6

+
+

+e, finalmente, na tabela 9, a composição do rebanho no sexto ano após a implementeação e adoção do PRV na propriedade VITRUVIO. +

+ + + + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 8: Composição do rebanho na fazenda VITRUVIO (ANO 6)
CATEGORIAEXTTANTTIRCOMPRAVENDASALDOTICEXTTFIN
VACAS >244090940040
Novilhas 12<>2401608880
Bezerras <120160016160
outros1   1 1
+
+
+
+ + + +
+

7. Resumo da evolução

+
+

+Esta tabela é a que efetivamente interessa para ser apresentada ao cliente, ou para análise técnica, pois apresenta o resumo (resultado da evolução) proposto para a fazenda. +

+ +

+Tabela com os dados resumidos referente aos animais existentes anualmente +Os dados da tabela abaixo resultam da estimativa de evolução de rebanho, de acordo com os dados da tabela de dados. +

+
+ +
+

7.1. Entradas e saídas

+
+ + + +++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ano200420052006200720082009
Vacas entradas000000
Novilhas entradas200000
Terneiras entradas000000
Total entradas200020
Vacas saídas0006149
Novilhas saídas000078
Terneiras saídas000000
Total saídas00061417
       
+
+
+ +
+

7.2. Animais existentes

+
+

+:TABLEEXPORTFILE: data/Tabela4.csv +:TABLEEXPORTFORMAT: orgtbl-to-csv +

+ + + +++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ano200420052006200720082009
Vacas202735404040
Novilhas78111498
Terneiras81114161616
Total354660706364
       
+
+
+
+ + +
+

8. TODO Resolver exportar ou criar data.tabela. Para continuar, é necessário exportar a Tabela acima. Faço pelo menu Table - Export to file. Nome do Arquivo a exportar = Tabela$.csv.>>

+
+
+
+

8.0.1. Importação dos dados dos animais existentes

+
+
+
  library (data.table)
+  library(tidyr)
+library(dplyr)
+  library (ggplot2)
+
+
+ +
+
Evol_exist <- fread("data/Tabela4.csv", check.names =FALSE, header=TRUE)
+  str(Evol_exist)
+
+#Transpor a tabela
+Evol_exist1<-dcast(melt(Evol_exist, id.vars="Ano"),variable ~Ano)
+# deu um trabalho para n ão aparecer uma linha nova com os nomes da colunas...
+str(Evol_exist1)
+Evoluc<-Evol_exist1%>%
+	 pivot_longer(!variable, names_to="Categoria", values_to="Cabecas")%>%
+	dplyr::mutate(Ano=variable)
+#View(Evoluc)
+str(Evoluc)
+
+
+
+ +
+Classes ‘data.table’ and 'data.frame':	5 obs. of  7 variables:
+ $ Ano : chr  "Vacas" "Novilhas" "Terneiras" "Total" ...
+ $ 2004: int  20 7 8 35 NA
+ $ 2005: int  27 8 11 46 NA
+ $ 2006: int  35 11 14 60 NA
+ $ 2007: int  40 14 16 70 NA
+ $ 2008: int  40 9 16 63 NA
+ $ 2009: int  40 8 16 64 NA
+ - attr(*, ".internal.selfref")=<externalptr>
+Classes ‘data.table’ and 'data.frame':	6 obs. of  6 variables:
+ $ variable : Factor w/ 6 levels "2004","2005",..: 1 2 3 4 5 6
+ $ V1       : int  NA NA NA NA NA NA
+ $ Novilhas : int  7 8 11 14 9 8
+ $ Terneiras: int  8 11 14 16 16 16
+ $ Total    : int  35 46 60 70 63 64
+ $ Vacas    : int  20 27 35 40 40 40
+ - attr(*, ".internal.selfref")=<externalptr> 
+ - attr(*, "sorted")= chr "variable"
+tibble [30 × 4] (S3: tbl_df/tbl/data.frame)
+ $ variable : Factor w/ 6 levels "2004","2005",..: 1 1 1 1 1 2 2 2 2 2 ...
+ $ Categoria: chr [1:30] "V1" "Novilhas" "Terneiras" "Total" ...
+ $ Cabecas  : int [1:30] NA 7 8 35 20 NA 8 11 46 27 ...
+ $ Ano      : Factor w/ 6 levels "2004","2005",..: 1 1 1 1 1 2 2 2 2 2 ...
+
+
+
+ + +
+

8.0.2. Gráfico da evolução do rebanho

+
+ +
+

8.1. Gráfico 1

+
+
+
+  Evoluc<-ggplot(Evoluc, aes(x=Ano, y=Cabecas, group = Categoria))+
+	  geom_line (aes(color=Categoria))+
+	 geom_point(aes(color=Categoria))
+	 getwd()
+png(filename="fig/Evoluc1.png")
+plot(Evoluc)
+
+ Evoluc
+
+
+
+
+
+ + +
+

evol1.png +

+
+
+
+ +
+

8.2.

+
+
+ +
+

9. TODO - Resolver exportação figura no arquivo html

+
+
+
+

9.1. Animais vendidos

+
+ + + +++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Vacas vendidas               
Novilhas vendidas               
Terneiras vendidas              
+
+
+
+ + +
+

10. Figuras (só para testar)

+
+

+Exemplo 2 +

+

+https://nuvem.multifarm.top/apps/files/?dir=/Photos&openfile=457851 +

+ + +

+Exemplo 3 - +#+beginexport html +<div id="subtittle" style="float: center; text-aling:center;"> +<p> +<font size="1"> Composição do rebanho. Nes propriedade, os animais são divididos em dois lotes para o pastoreio.</font> +</p> +<p> +<a href="http://multifarm.top"> +<img src= "https://nuvem.multifarm.top/apps/files/?dir=/Photos&openfile=457848" width = "250"/> +</a> +</p> +</div> +#+endexport> +

+ + +

+https://nuvem.multifarm.top/apps/files/?dir=/Photos&openfile=457848 +

+
+
+
+
+

Date: 08-31-2023

+

Author: Adenor Wendling

+

Validate

+
+ + diff --git a/EvolucaoVitruvio.org b/EvolucaoVitruvio.org index 48fc7ec..36de0e8 100644 --- a/EvolucaoVitruvio.org +++ b/EvolucaoVitruvio.org @@ -61,13 +61,13 @@ Os dados da tabela 2 refletem a composição de um rebanho com finalidade de pro #+NAME: C_ideal | | Categoria de animais | Cabeças | %cab% | UGM | %UGM | |---+-----------------------+---------+-------+------+-------| -| # | Vacas em lactação | 10 | 47.6 | 10 | 60.6 | +| # | Vacas em lactação | 18 | 51.4 | 18 | 76.9 | | # | Vacas secas | 2 | 9.5 | 2 | 12.1 | -| # | Bezerras ate 12 meses | 3 | 14.3 | 0.75 | 4.5 | -| # | Novilhas até 18 meses | 3 | 14.3 | 1.5 | 9.1 | -| # | Novilhas até 24 meses | 3 | 14.3 | 2.25 | 13.6 | +| # | Bezerras ate 12 meses | 10 | 32.3 | 2.5 | 2.8 | +| # | Novilhas até 18 meses | 3 | 9.1 | 1.5 | 6.2 | +| # | Novilhas até 24 meses | 0 | 0.0 | 0. | 0.0 | | # | Outros animais | | 0.0 | 0 | 0.0 | -| # | Total | 21 | 100.0 | 16.5 | 100.0 | +| # | Total | 33 | 100.0 | 24. | 100.0 | | ^ | | Tcab | | Tugm | | |---+-----------------------+---------+-------+------+-------| #+TBLFM: $4=$3*100/$Tcab;%.1f::@2$5=@2$3*remote(Tab1,@2$2)::@8$3=@2$3+@3$3+@4$3+@5$3+@6$3+@7$3::@3$5=@3$3*remote(Tab1, @3$2)::@4$5=@4$3*remote(Tab1, @4$2)::@5$5=@5$3*remote(Tab1, @5$2)::@6$5=@6$3*remote(Tab1, @6$2)::@7$5=@7$3*remote(Tab1, @7$2)::@8$5=vsum(@2..@7)::$6=$5*100/$Tugm;%.1f @@ -95,28 +95,28 @@ As tabelas de composição de rebanho serão calculadas automáticamente, com ba | | Partos/vaca/ano | 1 | 1 | 1 | 1 | 1 | 1 | | | ^ | | PV1 | PV2 | PV3 | PV4 | PV5 | PV6 | | |---+------------------------+-------+-------+-------+-------+-------+--------+--------------| -| | Vacas Existentes | 20 | - | - | - | - | - | - a calcular | +| | Vacas Existentes | 00 | - | - | - | - | - | - a calcular | | ^ | | VE1 | | | | | | | -| | Novilhas exist. | 05 | - | - | - | - | - | - a calcular | +| | Novilhas exist. | 00 | - | - | - | - | - | - a calcular | | ^ | | NE1 | | | | | | | | | Bezerras existentes | 0 | - | - | - | - | - | - a calcular | | ^ | | TE1 | | | | | | | |---+------------------------+-------+-------+-------+-------+-------+--------+--------------| | | Novilhas >- vacas | 0 | 0 | 0 | 0 | 0 | 0 | NÃO ALTERAR | | ^ | | TN1 | TN2 | TN3 | TN4 | TN5 | TN6 | | -| | % Bezerras -> novilhas | 0.4 | 0.4 | 0.4 | 0.4 | 0.4 | 0.4 | % S_Nascidos | +| | % Bezerras -> novilhas | 0.4 | 0.4 | 0.75 | 0.7 | 0.7 | 0.7 | % S_Nascidos | | ^ | | BA1 | BA2 | BA3 | BA4 | BA5 | BA6 | | |---+------------------------+-------+-------+-------+-------+-------+--------+--------------| -| | Vacas a vender | 0 | 0 | 0 | 6 | 14 | 9 | | +| | Vacas a vender | 0 | 0 | 0 | 0 | 5 | 4 | | | ^ | | VV1 | VV2 | VV3 | VV4 | VV5 | VV6 | | -| | Novilhas a vender | 0 | 0 | 0 | 0 | 7 | 8 | | +| | Novilhas a vender | 0 | 0 | 0 | 0 | 0 | 0 | | | ^ | | NV1 | NV2 | NV3 | NV4 | NV5 | NV6 | | -| | Bezerras a vender | 0 | 0 | 0 | 0 | 0 | 0 | | +| | Bezerras a vender | 0 | 4 | 10 | 12 | 15 | 14 | | | ^ | | BV1 | BV2 | BV3 | BV4 | BV5 | BV6 | | |---+------------------------+-------+-------+-------+-------+-------+--------+--------------| | | Vacas a comprar | 0 | 0 | 0 | 0 | 0 | 0 | | | ^ | | VC1 | VC2 | VC3 | VC4 | VC5 | VC6 | | -| | Novilhas a comprar | 2 | 0 | 0 | 0 | 0 | 0 | | +| | Novilhas a comprar | 20 | 0 | 0 | 0 | 0 | 0 | | | ^ | | NC1 | NC2 | NC3 | NC4 | NC5 | NC6 | | | | Bezerras a compras | 0 | 0 | 0 | 0 | 0 | 0 | | | ^ | | BC1 | BC2 | BC3 | BC4 | BC5 | BC6 | | @@ -140,11 +140,11 @@ Temos o seguinte: #+NAME: Tab3_1 | | Categoria | ExttAnt | TIR | Compra | Venda | Saldo | TIC | ExttFin | |---+-----------------+---------+-----+--------+-------+-------+-----+---------| -| # | VACAS >24 | 20 | 0 | 0 | 0 | 20 | 0 | 20 | +| # | VACAS >24 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | ^ | | EAV | TRV | COV | VEV | SAV | TCV | EFV | -| # | NOVILHAS 12<>24 | 5 | 0 | 2 | 0 | 7 | 7 | 0 | +| # | NOVILHAS 12<>24 | 0 | 0 | 20 | 0 | 20 | 20 | 0 | | ^ | | EAN | TRN | CON | VEN | SAN | TCN | EFN | -| # | BEZERRAS <12 | 0 | 8 | 0 | 0 | 8 | 8 | 0 | +| # | BEZERRAS <12 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | ^ | | EAB | FRB | COB | VEB | SAB | TCB | EFB | | # | Outros | | 0 | 0 | 0 | | 0 | 0 | | ^ | | EAO | FRO | COO | VEO | SAO | TCO | EFO | @@ -160,13 +160,13 @@ Na tabela 4 consta o número de animais para cada categoria, com as ocorrencias #+NAME: Tab3_2 | | CATEGORIA | EXTTANT | TIR | COMPRA | VENDA | SALDO | TIC | EXTTFIN | |---+-----------------+---------+-----+--------+-------+-------+-----+---------| -| # | VACAS >24 | 20 | 7 | 0 | 0 | 27 | 0 | 27 | +| # | VACAS >24 | 0 | 20 | 0 | 0 | 20 | 0 | 20 | | ^ | | EAV | TRV | COV | VEV | SAV | TCV | EFV | -| # | Novilhas 12<>24 | 0 | 8 | 0 | 0 | 8 | 8 | 0 | +| # | Novilhas 12<>24 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | ^ | | EAN | TRN | CON | VEN | SAN | TCN | EFN | -| # | Bezerras <12 | 0 | 11 | 0 | 0 | 11 | 11 | 0 | +| # | Bezerras <12 | 0 | 8 | 0 | 4 | 4 | 4 | 0 | | ^ | | EAB | FRB | COB | VEB | SAB | TCB | EFB | -| # | outros | 1 | | | | 1 | | 1 | +| # | outros | | | | | | | | | ^ | | EAO | FRO | COO | VEO | SAO | TCO | EFO | |---+-----------------+---------+-----+--------+-------+-------+-----+---------| #+TBLFM: $EAV=remote(Tab3_1, $EFV)::$TRV=remote(Tab3_1, $TCN)::$COV=remote(Tab0,$VC2)::$VEV=remote(Tab0, $VV2)::$SAV=$EAV+$TRV+$COV-$VEV::$EFV=$SAV::$EAN=remote(Tab3_1, $EFN)::$TRN=remote(Tab3_1, $TCB)::$CON=remote(Tab0,$NC2)::$VEN=remote(Tab0, $NV2)::$SAN=$EAN+$TRN+$CON-$VEN::$TCN=$SAN::$EFN=$SAN-$TCN::$EAB=remote(Tab3_1, $EFB)::$FRB=$EFV*remote(Tab0, $BA2);%.0f::$COB=remote(Tab0,$BC2)::$VEB=remote(Tab0,$BV2)::$SAB=$EAB+$FRB+$COB-$VEB::$TCB=$SAB::$EFB=$SAB-$TCB @@ -179,13 +179,13 @@ Na tabela 3.3 podemos observar... #+NAME: Tab3_3 | | CATEGORIA | EXTTANT | TIR | COMPRA | VENDA | SALDO | TIC | EXTTFIN | |---+-----------------+---------+-----+--------+-------+-------+-----+---------| -| # | VACAS >24 | 27 | 8 | 0 | 0 | 35 | 0 | 35 | +| # | VACAS >24 | 20 | 0 | 0 | 0 | 20 | 0 | 20 | | ^ | | EAV | TRV | COV | VEV | SAV | TCV | EFV | -| # | Novilhas 12<>24 | 0 | 11 | 0 | 0 | 11 | 11 | 0 | +| # | Novilhas 12<>24 | 0 | 4 | 0 | 0 | 4 | 4 | 0 | | ^ | | EAN | TRN | CON | VEN | SAN | TCN | EFN | -| # | Bezerras <12 | 0 | 14 | 0 | 0 | 14 | 14 | 0 | +| # | Bezerras <12 | 0 | 15 | 0 | 10 | 5 | 5 | 0 | | ^ | | EAB | FRB | COB | VEB | SAB | TCB | EFB | -| # | outros | 1 | | | | 1 | | 1 | +| # | outros | | | | | | | | | ^ | | EAO | FRO | COO | VEO | SAO | TCO | EFO | |---+-----------------+---------+-----+--------+-------+-------+-----+---------| #+TBLFM: $EAV=remote(Tab3_2, $EFV)::$TRV=remote(Tab3_2, $TCN)::$COV=remote(Tab0,$VC3)::$VEV=remote(Tab0, $VV3)::$SAV=$EAV+$TRV+$COV-$VEV::$EFV=$SAV::$EAN=remote(Tab3_2, $EFN)::$TRN=remote(Tab3_2, $TCB)::$CON=remote(Tab0,$NC3)::$VEN=remote(Tab0, $NV3)::$SAN=$EAN+$TRN+$CON-$VEN::$TCN=$SAN::$EFN=$SAN-$TCN::$EAB=remote(Tab3_2, $EFB)::$FRB=$EFV*remote(Tab0, $BA3);%.0f::$COB=remote(Tab0,$BC3)::$VEB=remote(Tab0,$BV3)::$SAB=$EAB+$FRB+$COB-$VEB::$TCB=$SAB::$EFB=$SAB-$TCB @@ -197,13 +197,13 @@ Comentários sobre a tabela 6 #+NAME: Tab3_4 | | CATEGORIA | EXTTANT | TIR | COMPRA | VENDA | SALDO | TIC | EXTTFIN | |---+-----------------+---------+-----+--------+-------+-------+-----+---------| -| # | VACAS >24 | 35 | 11 | 0 | 6 | 40 | 0 | 40 | +| # | VACAS >24 | 20 | 4 | 0 | 0 | 24 | 0 | 24 | | ^ | | EAV | TRV | COV | VEV | SAV | TCV | EFV | -| # | Novilhas 12<>24 | 0 | 14 | 0 | 0 | 14 | 14 | 0 | +| # | Novilhas 12<>24 | 0 | 5 | 0 | 0 | 5 | 5 | 0 | | ^ | | EAN | TRN | CON | VEN | SAN | TCN | EFN | -| # | Bezerras <12 | 0 | 16 | 0 | 0 | 16 | 16 | 0 | +| # | Bezerras <12 | 0 | 17 | 0 | 12 | 5 | 5 | 0 | | ^ | | EAB | FRB | COB | VEB | SAB | TCB | EFB | -| # | outros | 1 | | | | 1 | | 1 | +| # | outros | 1 | | | | | | | | ^ | | EAO | FRO | COO | VEO | SAO | TCO | EFO | |---+-----------------+---------+-----+--------+-------+-------+-----+---------| #+TBLFM: $EAV=remote(Tab3_3, $EFV)::$TRV=remote(Tab3_3, $TCN)::$COV=remote(Tab0,$VC4)::$VEV=remote(Tab0, $VV4)::$SAV=$EAV+$TRV+$COV-$VEV::$EFV=$SAV::$EAN=remote(Tab3_3, $EFN)::$TRN=remote(Tab3_3, $TCB)::$CON=remote(Tab0,$NC4)::$VEN=remote(Tab0, $NV4)::$SAN=$EAN+$TRN+$CON-$VEN::$TCN=$SAN::$EFN=$SAN-$TCN::$EAB=remote(Tab3_3, $EFB)::$FRB=$EFV*remote(Tab0, $BA4);%.0f::$COB=remote(Tab0,$BC4)::$VEB=remote(Tab0,$BV4)::$SAB=$EAB+$FRB+$COB-$VEB::$TCB=$SAB::$EFB=$SAB-$TCB @@ -219,11 +219,11 @@ Comentários sobre a tabela 6 :END: | | CATEGORIA | EXTTANT | TIR | COMPRA | VENDA | SALDO | TIC | EXTTFIN | |---+-----------------+---------+-----+--------+-------+-------+-----+---------| -| # | VACAS >24 | 40 | 14 | 0 | 14 | 40 | 0 | 40 | +| # | VACAS >24 | 24 | 5 | 0 | 5 | 24 | 0 | 24 | | ^ | | EAV | TRV | COV | VEV | SAV | TCV | EFV | -| # | Novilhas 12<>24 | 0 | 16 | 0 | 7 | 9 | 9 | 0 | +| # | Novilhas 12<>24 | 0 | 5 | 0 | 0 | 5 | 5 | 0 | | ^ | | EAN | TRN | CON | VEN | SAN | TCN | EFN | -| # | Bezerras <12 | 0 | 16 | 0 | 0 | 16 | 16 | 0 | +| # | Bezerras <12 | 0 | 17 | 0 | 12 | 5 | 5 | 0 | | ^ | | EAB | FRB | COB | VEB | SAB | TCB | EFB | | # | outros | 1 | | | | 1 | | 1 | | ^ | | EAO | FRO | COO | VEO | SAO | TCO | EFO | @@ -241,13 +241,13 @@ e, finalmente, na tabela 9, a composição do rebanho no sexto ano após a imple #+caption: Composição do rebanho na fazenda VITRUVIO (ANO 6) | | CATEGORIA | EXTTANT | TIR | COMPRA | VENDA | SALDO | TIC | EXTTFIN | |---+-----------------+---------+-----+--------+-------+-------+-----+---------| -| # | VACAS >24 | 40 | 9 | 0 | 9 | 40 | 0 | 40 | +| # | VACAS >24 | 24 | 5 | 0 | 4 | 25 | 0 | 25 | | ^ | | EAV | TRV | COV | VEV | SAV | TCV | EFV | -| # | Novilhas 12<>24 | 0 | 16 | 0 | 8 | 8 | 8 | 0 | +| # | Novilhas 12<>24 | 0 | 5 | 0 | 0 | 5 | 5 | 0 | | ^ | | EAN | TRN | CON | VEN | SAN | TCN | EFN | -| # | Bezerras <12 | 0 | 16 | 0 | 0 | 16 | 16 | 0 | +| # | Bezerras <12 | 0 | 18 | 0 | 14 | 4 | 4 | 0 | | ^ | | EAB | FRB | COB | VEB | SAB | TCB | EFB | -| # | outros | 1 | | | | 1 | | 1 | +| # | outros | 1 | | | | | | | | ^ | | EAO | FRO | COO | VEO | SAO | TCO | EFO | |---+-----------------+---------+-----+--------+-------+-------+-----+---------| #+TBLFM: $EAV=remote(Tab3_5, $EFV)::$TRV=remote(Tab3_5, $TCN)::$COV=remote(Tab0,$VC6)::$VEV=remote(Tab0, $VV6)::$SAV=$EAV+$TRV+$COV-$VEV::$EFV=$SAV::$EAN=remote(Tab3_5, $EFN)::$TRN=remote(Tab3_5, $TCB)::$CON=remote(Tab0,$NC6)::$VEN=remote(Tab0, $NV6)::$SAN=$EAN+$TRN+$CON-$VEN::$TCN=$SAN::$EFN=$SAN-$TCN::$EAB=remote(Tab3_5, $EFB)::$FRB=$EFV*remote(Tab0, $BA6);%.0f::$COB=remote(Tab0,$BC6)::$VEB=remote(Tab0,$BV6)::$SAB=$EAB+$FRB+$COB-$VEB::$TCB=$SAB::$EFB=$SAB-$TCB @@ -264,16 +264,16 @@ Os dados da tabela abaixo resultam da estimativa de evolução de rebanho, de ac | | Ano | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | |---+--------------------+------+------+------+------+------+------| | # | Vacas entradas | 0 | 0 | 0 | 0 | 0 | 0 | -| # | Novilhas entradas | 2 | 0 | 0 | 0 | 0 | 0 | +| # | Novilhas entradas | 20 | 0 | 0 | 0 | 0 | 0 | | # | Terneiras entradas | 0 | 0 | 0 | 0 | 0 | 0 | |---+--------------------+------+------+------+------+------+------| -| # | Total entradas | 2 | 0 | 0 | 0 | 2 | 0 | +| # | Total entradas | 20 | 0 | 0 | 0 | 20 | 0 | |---+--------------------+------+------+------+------+------+------| -| # | Vacas saídas | 0 | 0 | 0 | 6 | 14 | 9 | -| # | Novilhas saídas | 0 | 0 | 0 | 0 | 7 | 8 | -| # | Terneiras saídas | 0 | 0 | 0 | 0 | 0 | 0 | +| # | Vacas saídas | 0 | 0 | 0 | 0 | 5 | 4 | +| # | Novilhas saídas | 0 | 0 | 0 | 0 | 0 | 0 | +| # | Terneiras saídas | 0 | 4 | 10 | 12 | 12 | 14 | |---+--------------------+------+------+------+------+------+------| -| # | Total saídas | 0 | 0 | 0 | 6 | 14 | 17 | +| # | Total saídas | 0 | 4 | 10 | 12 | 17 | 18 | |---+--------------------+------+------+------+------+------+------| | | | | | | | | | #+TBLFM:@2$3=remote(Tab3_1, $COV)::@2$4=remote(Tab3_2, $COV)::@2$5=remote(Tab3_3, $COV)::@2$6=remote(Tab3_4, $COV)::@2$7=remote(Tab3_5, $COV)::@2$8=remote(Tab3_6, $COV)::@3$3=remote(Tab3_1, $CON)::@3$4=remote(Tab3_2, $CON)::@3$5=remote(Tab3_3, $CON)::@3$6=remote(Tab3_4, $CON)::@3$7=remote(Tab3_5, $CON)::@3$8=remote(Tab3_6, $CON)::@4$3=remote(Tab3_1, $COB)::@4$4=remote(Tab3_2, $COB)::@4$5=remote(Tab3_3, $COB)::@4$6=remote(Tab3_4, $COB)::@4$7=remote(Tab3_5, $COB)::@4$8=remote(Tab3_6, $COB)::@5$3=@2$3+@3$3+@4$3::@5$4=@2$4+@3$4+@4$4::@5$5=@2$5+@3$5+@4$5::@5$6=@2$6+@3$6+@4$6::@5$7=@2$7+@3$3+@4$7::@5$8=@2$8+@3$8+@4$8::@6$3=remote(Tab3_1, $VEV)::@6$4=remote(Tab3_2, $VEV)::@6$5=remote(Tab3_3, $VEV)::@6$6=remote(Tab3_4, $VEV)::@6$7=remote(Tab3_5, $VEV)::@6$8=remote(Tab3_6, $VEV)::@7$3=remote(Tab3_1, $VEN)::@7$4=remote(Tab3_2, $VEN)::@7$5=remote(Tab3_3, $VEN)::@7$6=remote(Tab3_4, $VEN)::@7$7=remote(Tab3_5, $VEN)::@7$8=remote(Tab3_6, $VEN)::@8$3=remote(Tab3_1, $VEB)::@8$4=remote(Tab3_2, $VEB)::@8$5=remote(Tab3_3, $VEB)::@8$6=remote(Tab3_4, $VEB)::@8$7=remote(Tab3_5, $VEB)::@8$8=remote(Tab3_6, $VEB)::@9$3=@6$3+@7$3+@8$3::@9$4=@6$4+@7$4+@8$4::@9$5=@6$5+@7$5+@8$5::@9$6=@6$6+@7$6+@8$6::@9$7=@6$7+@7$3+@8$7::@9$8=@6$8+@7$8+@8$8 @@ -285,131 +285,55 @@ Os dados da tabela abaixo resultam da estimativa de evolução de rebanho, de ac :TABLE_EXPORT_FILE: data/Tabela4.csv :TABLE_EXPORT_FORMAT: orgtbl-to-csv :END: -| | Ano | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | -|---+-----------+------+------+------+------+------+------| -| # | Vacas | 20 | 27 | 35 | 40 | 40 | 40 | -| # | Novilhas | 7 | 8 | 11 | 14 | 9 | 8 | -| # | Terneiras | 8 | 11 | 14 | 16 | 16 | 16 | -|---+-----------+------+------+------+------+------+------| -| # | Total | 35 | 46 | 60 | 70 | 63 | 64 | -| # | | | | | | | | -#+TBLFM:@2$3=remote(Tab3_1, $SAV)::@2$4=remote(Tab3_2, $SAV)::@2$5=remote(Tab3_3, $SAV)::@2$6=remote(Tab3_4, $SAV)::@2$7=remote(Tab3_5, $SAV)::@2$8=remote(Tab3_6, $SAV)::@3$3=remote(Tab3_1, $SAN)::@3$4=remote(Tab3_2, $SAN)::@3$5=remote(Tab3_3, $SAN)::@3$6=remote(Tab3_4, $SAN)::@3$7=remote(Tab3_5, $SAN)::@3$8=remote(Tab3_6, $SAN)::@4$3=remote(Tab3_1, $SAB)::@4$4=remote(Tab3_2, $SAB)::@4$5=remote(Tab3_3, $SAB)::@4$6=remote(Tab3_4, $SAB)::@4$7=remote(Tab3_5, $SAB)::@4$8=remote(Tab3_6, $SAB)::@5$3=@2$3+@3$3+@4$3::@5$4=@2$4+@3$4+@4$4::@5$5=@2$5+@3$5+@4$5::@5$6=@2$6+@3$6+@4$6::@5$7=@2$7+@3$3+@4$7::@5$8=@2$8+@3$8+@4$8 - +| | Categoria | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | +|---+-----------+------+------+-------+------+------+-------| +| # | Vacas | 0 | 20 | 20 | 24 | 24 | 25 | +| # | Novilhas | 20 | 0 | 4 | 5 | 5 | 5 | +| # | Terneiras | 0 | 4 | 5 | 5 | 5 | 4 | +|---+-----------+------+------+-------+------+------+-------| +| # | T_cab | 20 | 24 | 29 | 34 | 34 | 34 | +| # | T_UGMs | 20. | 21. | 25.25 | 30.5 | 31.5 | 31.75 | +| # | | | | | | | | +#+TBLFM:@2$3=remote(Tab3_1, $SAV)::@2$4=remote(Tab3_2, $SAV)::@2$5=remote(Tab3_3, $SAV)::@2$6=remote(Tab3_4, $SAV)::@2$7=remote(Tab3_5, $SAV)::@2$8=remote(Tab3_6, $SAV)::@3$3=remote(Tab3_1, $SAN)::@3$4=remote(Tab3_2, $SAN)::@3$5=remote(Tab3_3, $SAN)::@3$6=remote(Tab3_4, $SAN)::@3$7=remote(Tab3_5, $SAN)::@3$8=remote(Tab3_6, $SAN)::@4$3=remote(Tab3_1, $SAB)::@4$4=remote(Tab3_2, $SAB)::@4$5=remote(Tab3_3, $SAB)::@4$6=remote(Tab3_4, $SAB)::@4$7=remote(Tab3_5, $SAB)::@4$8=remote(Tab3_6, $SAB)::@5$3=@2$3+@3$3+@4$3::@5$4=@2$4+@3$4+@4$4::@5$5=@2$5+@3$5+@4$5::@5$6=@2$6+@3$6+@4$6:: @5$7=@2$7+@3$7+@4$7:: + @5$8=@2$8+@3$8+@4$8::@6$3=(@2$3*remote(Tab1,@2$2)+@3$3*remote(tab1,@3$2)+@4$3*remote(tab1,@4$2))::@6$4=(@2$4*remote(Tab1,@2$2)+@3$4*remote(tab1,@3$2)+@4$4*remote(tab1,@4$2))::@6$5=(@2$5*remote(Tab1,@2$2)+@3$5*remote(tab1,@3$2)+@4$5*remote(tab1,@4$2))::@6$6=(@2$6*remote(Tab1,@2$2)+@3$6*remote(tab1,@3$2)+@4$6*remote(tab1,@4$2))::@6$7=(@2$7*remote(Tab1,@2$2)+@3$7*remote(tab1,@3$2)+@4$7*remote(tab1,@4$2))::@6$8=(@2$8*remote(Tab1,@2$2)+@3$8*remote(tab1,@3$2)+@4$8*remote(tab1,@4$2)) * TODO Resolver exportar ou criar data.tabela. Para continuar, é necessário exportar a Tabela acima. Faço pelo menu Table - Export to file. Nome do Arquivo a exportar = Tabela$.csv.>> -*** Importação dos dados dos animais existentes -#+begin_src R - library (data.table) - library(tidyr) -library(dplyr) - library (ggplot2) -#+end_src - -#+RESULTS: - +** Gráfico resumo +#+NAME: Ler data.table Resumo #+begin_src R - Evol_exist <- fread("data/Tabela4.csv", check.names =FALSE, header=TRUE) - str(Evol_exist) - - #Transpor a tabela - Evol_exist1<-dcast(melt(Evol_exist, id.vars="Ano"),variable ~Ano) - # deu um trabalho para n ão aparecer uma linha nova com os nomes da colunas... - str(Evol_exist1) - Evoluc<-Evol_exist1%>% - pivot_longer(!variable, names_to="Categoria", values_to="Cabecas")%>% - dplyr::mutate(Ano=variable) - #View(Evoluc) - str(Evoluc) - -#+end_src + library(data.table) + library(tidyr) +library(dplyr) +REV<-fread("~/Documentos/GITs/Compos_rebanho/data/ResumoEvolucaoVitruvio.csv", header=TRUE) + REv<- REV%>% + pivot_longer (cols=c("2004", "2005", "2006", "2007", "2008", "2009"), + names_to="Ano", + values_to="Quantidade", + values_drop_na = TRUE ) -#+RESULTS: -#+begin_example -Classes ‘data.table’ and 'data.frame': 5 obs. of 7 variables: - $ Ano : chr "Vacas" "Novilhas" "Terneiras" "Total" ... - $ 2004: int 20 7 8 35 NA - $ 2005: int 27 8 11 46 NA - $ 2006: int 35 11 14 60 NA - $ 2007: int 40 14 16 70 NA - $ 2008: int 40 9 16 63 NA - $ 2009: int 40 8 16 64 NA - - attr(*, ".internal.selfref")= -Classes ‘data.table’ and 'data.frame': 6 obs. of 6 variables: - $ variable : Factor w/ 6 levels "2004","2005",..: 1 2 3 4 5 6 - $ V1 : int NA NA NA NA NA NA - $ Novilhas : int 7 8 11 14 9 8 - $ Terneiras: int 8 11 14 16 16 16 - $ Total : int 35 46 60 70 63 64 - $ Vacas : int 20 27 35 40 40 40 - - attr(*, ".internal.selfref")= - - attr(*, "sorted")= chr "variable" -tibble [30 × 4] (S3: tbl_df/tbl/data.frame) - $ variable : Factor w/ 6 levels "2004","2005",..: 1 1 1 1 1 2 2 2 2 2 ... - $ Categoria: chr [1:30] "V1" "Novilhas" "Terneiras" "Total" ... - $ Cabecas : int [1:30] NA 7 8 35 20 NA 8 11 46 27 ... - $ Ano : Factor w/ 6 levels "2004","2005",..: 1 1 1 1 1 2 2 2 2 2 ... -#+end_example +REv$Ano=as.numeric(REv$Ano) +View(REv) +#end_src +#+NAME: grafico resumo +#+begin_src R + library (ggplot2) -*** Gráfico da evolução do rebanho +test1<-ggplot(REv, aes(Ano, + Quantidade, + colour=Categoria))+ + geom_line() +test1 + #+end_src -** Gráfico 1 -#+header: :width 8 :height 8 :family Times -#+begin_src R :file ..fig/evol1.png :results file graphics - - Evoluc<-ggplot(Evoluc, aes(x=Ano, y=Cabecas, group = Categoria))+ - geom_line (aes(color=Categoria))+ - geom_point(aes(color=Categoria)) - getwd() -png(filename="fig/Evoluc1.png") -plot(Evoluc) - - Evoluc - - - -#+end_src - -#+RESULTS: -[[file:~/fig/Evoluc11.png]] + #+RESULTS: Ler data.table Resumo + : tibble [36 × 3] (S3: tbl_df/tbl/data.frame) + : $ Categoria : chr [1:36] "Vacas" "Vacas" "Vacas" "Vacas" ... + : $ Ano : num [1:36] 2004 2005 2006 2007 2008 ... + : $ Quantidade: num [1:36] 0 20 20 24 24 25 20 0 4 5 ... + : Warning message: + : Removed 6 rows containing missing values + : (`geom_line()`). ** - -* TODO - Resolver exportação figura no arquivo html - - - - - -** Animais vendidos -| # | Vacas vendidas | | | | | | | | | | | | | | | | -| # | Novilhas vendidas | | | | | | | | | | | | | | | | -| # | Terneiras vendidas | | | | | | | | | | | | | | | - - -* Figuras (só para testar) -Exemplo 2 -#+caption:Vacas com água, pasto e sombra. -#+ATTR_HTML:width 300 px :align center :title Action! -[[https://nuvem.multifarm.top/apps/files/?dir=/Photos&openfile=457851]] - - -Exemplo 3 - -#+begin_export html -
-

- Composição do rebanho. Nes propriedade, os animais são divididos em dois lotes para o pastoreio. -

-

- - - -

-
-#+end_export> - - -#+Caption: Composição do rebanho. Nes propriedade, os animais são divididos em dois lotes para o pastoreio. -#+ATTR_HTML: width 200 px :aling center -[[https://nuvem.multifarm.top/apps/files/?dir=/Photos&openfile=457848]] diff --git a/data/ResumoEvolucaoVitruvio.csv b/data/ResumoEvolucaoVitruvio.csv new file mode 100644 index 0000000..1fb9a7a --- /dev/null +++ b/data/ResumoEvolucaoVitruvio.csv @@ -0,0 +1,7 @@ +Categoria,2004,2005,2006,2007,2008,2009 +Vacas,0,20,20,24,24,25 +Novilhas,20,0,4,5,5,5 +Terneiras,0,4,5,5,5,4 +T_cab,20,24,29,34,34,34 +T_UGMs,20.,21.,25.25,30.5,31.5,31.75 +,,,,,, diff --git a/data/ResumoEvolucaoVitruvio.csv~ b/data/ResumoEvolucaoVitruvio.csv~ new file mode 100644 index 0000000..99126a8 --- /dev/null +++ b/data/ResumoEvolucaoVitruvio.csv~ @@ -0,0 +1,7 @@ +Categ,2004,2005,2006,2007,2008,2009 +Vacas,0,20,20,24,24,25 +Novilhas,20,0,4,5,5,5 +Terneiras,0,4,5,5,5,4 +T_cab,20,24,29,34,34,34 +T_UGMs,20.,21.,25.25,30.5,31.5,31.75 +,,,,,, diff --git a/data/Tabela3.csv b/data/Tabela3.csv new file mode 100644 index 0000000..41b8a4e --- /dev/null +++ b/data/Tabela3.csv @@ -0,0 +1,10 @@ +Ano,2004,2005,2006,2007,2008,2009 +Vacas entradas,0,0,0,0,0,0 +Novilhas entradas,2,0,0,0,0,0 +Terneiras entradas,0,0,0,0,0,0 +Total entradas,2,0,0,0,2,0 +Vacas saídas,0,0,0,3,14,9 +Novilhas saídas,0,0,0,0,7,8 +Terneiras saídas,0,0,0,0,0,0 +Total saídas,0,0,0,3,14,17 +,,,,,, diff --git a/fig/Evoluc1.png b/fig/Evoluc1.png new file mode 100644 index 0000000000000000000000000000000000000000..35c9232335e378c6a9b06554dd95cd47b5260f1b GIT binary patch literal 21038 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 literal 0 HcmV?d00001