[R-br] SOMAR LINHAS

Fernando Antonio de souza nandodesouza em gmail.com
Sábado Maio 6 13:20:36 BRT 2017


Utilizando os dados organizados pelo Rodrigo. Segue a minha solução para
seu problema de forma reproduzível.

Abraço a todos

dados <- structure(list(id = c(49L, 49L, 49L, 64L, 64L, 64L, 23L, 23L, 23L,
23L), evento1 = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 3L), .Label
= c("A", "D", "E"), class = "factor"), nomes = structure(c(3L, 3L, 3L, 2L,
2L, 2L, 1L, 1L, 1L, 1L), .Label = c("Anicuns", "Goiânia", "Santo Antônio do
Descoberto"), class = "factor"), cons_jan_15 = c(9033.36, NA, NA, NA, NA,
4091.54, 6833.28, NA, NA, NA), valor_jan_15 = c(4848.67, NA, NA, NA, NA,
3076.74, 3772.8, NA, NA, NA), cons_fev_15 = c(13131.13, NA, NA, NA, NA,
5482.15, 8706.81, NA, NA, NA), valor_fev_15 = c(4320.57, NA, NA, NA, NA,
2243.94, 2961.72, NA, NA, NA), cons_mar_15 = c(8121.07, NA, NA, NA, NA,
3380.04, 5524.23, NA, NA, NA), valor_mar_15 = c(4410.8, NA, NA, NA, NA,
2033.13, 3285.14, NA, NA, NA), cons_abr_15 = c(8562.85, NA, NA, NA, NA,
3003.66, 6157.68, NA, NA, NA), valor_abr_15 = c(6241.59, NA, NA, NA, NA,
2250.64, 4381.01, NA, NA, NA), cons_mai_15 = c(8261.5, NA, NA, NA, NA,
3601.44, 5997.78, NA, NA, NA), valor_mai_15 = c(5586.92, NA, NA, NA, NA,
2550.23, 4178.95, NA, NA, NA)), .Names = c("id", "evento1", "nomes",
"cons_jan_15", "valor_jan_15", "cons_fev_15", "valor_fev_15",
"cons_mar_15", "valor_mar_15", "cons_abr_15", "valor_abr_15",
"cons_mai_15", "valor_mai_15"), class = "data.frame", row.names = c(NA,
-10L))

install.package("plyr")


library(plyr)

dados <-
transform(dados,id=factor(id),evento1=factor(evento1),nomes=factor(nomes))

adicLinha <- function(x) {
    soma<-numeric()
    for(i in 1:ncol(x){

        if(is.numeric(x[,i])){

            soma[i] <-sum(x[,i],na.rm=TRUE)


        }


    }
     return(rbind(x,soma))
    }

ddply(dados,.(id,evento1,nomes),adicLinha)



Em 3 de maio de 2017 14:03, jose gomes de souza filho Gomes via R-br <
r-br em listas.c3sl.ufpr.br> escreveu:

> Boa Tarde,
>
> Tenho a seguinte base ( uma parte, são várias linhas):
>
> bd<-"id;evento1;nomes;cons_jan_15    ;valor_jan_15;cons_fev_15;
> valor_fev_15;cons_mar_15;valor_mar_15    ;cons_abr_15;valor_abr_15;
> cons_mai_15;valor_mai_15
> 49;A;Santo Antônio do Descoberto;9033.36;4848.67;
> 13131.13;4320.57;8121.07;4410.8;8562.85;6241.59;8261.5;5586.92
> 49;A;Santo Antônio do Descoberto;NA;NA;NA;NA;NA;NA;NA;NA;NA;NA
> 49;A;Santo Antônio do Descoberto;NA;NA;NA;NA;NA;NA;NA;NA;NA;NA
> 64;D;Goiânia;NA;NA;NA;NA;NA;NA;NA;NA;NA;NA
> 64;D;Goiânia;NA;NA;NA;NA;NA;NA;NA;NA;NA;NA
> 64;D;Goiânia;4091.54;3076.74;5482.15;2243.94;3380.04;2033.
> 13;3003.66;2250.64;3601.44;2550.23
> 23;E;Anicuns;6833.28;3772.8;8706.81;2961.72;5524.23;3285.
> 14;6157.68;4381.01;5997.78;4178.95
> 23;E;Anicuns;NA;NA;NA;NA;NA;NA;NA;NA;NA;NA
> 23;E;Anicuns;NA;NA    ;NA;NA;NA;NA;NA;NA;NA;NA
> 23;E;Anicuns;NA;NA    ;NA;NA;NA;NA;NA;NA;NA;NA"
> dads <- read.table(header = TRUE, text=bd, sep=";")
> dads
>
> Quero somar as linhas, de modo que:
>
> id
>
> evento1
>
> nomes
>
> cons_jan_15
>
> valor_jan_15
>
> cons_fev_15
>
> valor_fev_15
>
> cons_mar_15
>
> valor_mar_15
>
> cons_abr_15
>
> valor_abr_15
>
> cons_mai_15
>
> valor_mai_15
>
> 49
>
> A
>
> Santo Antônio do Descoberto
>
> 9033,36
>
> 4848,67
>
> 13131,13
>
> 4320,57
>
> 8121,07
>
> 4410,8
>
> 8562,85
>
> 6241,59
>
> 8261,5
>
> 5586,92
>
> 49
>
> A
>
> Santo Antônio do Descoberto
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 49
>
> A
>
> Santo Antônio do Descoberto
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 49
>
> A
>
> Santo Antônio do Descoberto
>
> 9033,36
>
> 4848,67
>
> 13131,13
>
> 4320,57
>
> 8121,07
>
> 4410,8
>
> 8562,85
>
> 6241,59
>
> 8261,5
>
> 5586,92
>
> 64
>
> D
>
>  Goiânia
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 64
>
> D
>
>  Goiânia
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 64
>
> D
>
>  Goiânia
>
> 4091,54
>
> 3076,74
>
> 5482,15
>
> 2243,94
>
> 3380,04
>
> 2033,13
>
> 3003,66
>
> 2250,64
>
> 3601,44
>
> 2550,23
>
> 64
>
> D
>
>  Goiânia
>
> 4091,54
>
> 3076,74
>
> 5482,15
>
> 2243,94
>
> 3380,04
>
> 2033,13
>
> 3003,66
>
> 2250,64
>
> 3601,44
>
> 2550,23
>
> 23
>
> E
>
> Anicuns
>
> 6833,28
>
> 3772,8
>
> 8706,81
>
> 2961,72
>
> 5524,23
>
> 3285,14
>
> 6157,68
>
> 4381,01
>
> 5997,78
>
> 4178,95
>
> 23
>
> E
>
> Anicuns
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 23
>
> E
>
> Anicuns
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 23
>
> E
>
> Anicuns
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 0
>
> 23
>
> E
>
> Anicuns
>
> 6833,28
>
> 3772,8
>
> 8706,81
>
> 2961,72
>
> 5524,23
>
> 3285,14
>
> 6157,68
>
> 4381,01
>
> 5997,78
>
> 4178,95
>
>
> Obrigado pela ajuda,
>
>
>
>
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>



-- 
=========================================
Fernando Souza
Zootecnista, DSc. Produção e Alimentação Animal
Celular: (31)99796-8781 (Vivo)
E-mail:nandodesouza em gmail.com <e-mail%3Anandodesouza em gmail.com>
Lattes: http://lattes.cnpq.br/6519538815038307
Blog: https://producaoanimalcomr.wordpress.com/
==========================================
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170506/b8b86736/attachment.html>


Mais detalhes sobre a lista de discussão R-br