[R-br] RES: SOMAR LINHAS
Leonard de Assis
assis.leonard em gmail.com
Segunda Maio 8 09:10:26 BRT 2017
Falta um ‘)’ no ‘for(i in ...’
De: R-br [mailto:r-br-bounces em listas.c3sl.ufpr.br] Em nome de Mauro Sznelwar via R-br
Enviada em: domingo, 7 de maio de 2017 13:16
Para: nandodesouza em gmail.com; r-br em listas.c3sl.ufpr.br
Assunto: Re: [R-br] SOMAR LINHAS
Tentei rodar e não consegui:
> dados <- transform(dados,id=factor(id),evento1=factor(evento1),nomes=factor(nomes))
>
> adicLinha <- function(x) {
+ soma<-numeric()
+ for(i in 1:ncol(x){
Erro: '{' inesperado in:
" soma<-numeric()
for(i in 1:ncol(x){"
>
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,
_______________________________________________
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170508/d9d09e3e/attachment.html>
Mais detalhes sobre a lista de discussão R-br