[R-br] Subscribe - Erro ao exportar Dados para o Excel

Daniel Guimarães Tiezzi dtiezzi em usp.br
Sáb Abr 4 09:48:57 -03 2020


Bom dia

O erro gerado diz que a dimensão do objeto que você está tentando inserir como rownames do seu dataframe são diferentes.

Verifique isso:

> dim(planilha)[1]
> length(dados [ ,1])

Esses valoras devem ser iguais.

Daniel

 

Daniel Tiezzi, MD, PhD
Oncologia / Mastologia
Professor Associado - Livre Docente
Departamento de Ginecologia e Obstetrícia
Setor de Mastologia e Oncologia Ginecológica
Faculdade de Medicina de Ribeirão Preto - USP
Tel.: 16 3602-2488
e-mail: dtiezzi em usp.br



> On 4 Apr 2020, at 09:02, Marcio Boareto por (R-br) <r-br em listas.c3sl.ufpr.br> wrote:
> 
> Bom dia
> 
> Preciso gerar uma planilha em excel dos dados gerados no modelo, porém está dando erro ao tentar colocar o nome das empresas na coluna 1 da planilha, segue o script: está dando erro no comando rownames
> 
> #modelo retirado do artigo disponível em: https://www.aedb.br/seget/arquivos/artigos13/44218525.pdf <https://www.aedb.br/seget/arquivos/artigos13/44218525.pdf>
> > require(lpSolve) # carrega pacote lpSolve previamente instalado
> Carregando pacotes exigidos: lpSolve
> > require(xlsx) # carrega pacote xlsReadWrite previamente instalado
> Carregando pacotes exigidos: xlsx
> > setwd('c:/Users/Usuário/UFG/MESTRADO 2017/MESTRADO 2019/R') # define o diretório de trabalho
> > library(readxl)
> > library(openxlsx)
>  
> Attaching package: ‘openxlsx’
>  
> The following objects are masked from ‘package:xlsx’:
>  
>     createWorkbook, loadWorkbook, read.xlsx, saveWorkbook, write.xlsx
>  
> > library(xlsx)
> > dados <- read_excel("C:/Users/Usuário/UFG/MESTRADO 2017/MESTRADO 2019/R/dados.xlsx", col_names=TRUE)
> > View(dados)
> > dados
> # A tibble: 18 x 5
>    UTILITY                  OPEX NETWORK      MWH CUSTOMERS
>    <chr>                   <dbl>   <dbl>    <dbl>     <dbl>
>  1 ELETROPAULO        1249143613   45213 39922710   5987873
>  2 CEMIG              1682334644  460219 37476802   6832546
>  3 CPFL - PAULISTA     497290782   89879 25267579   3502793
>  4 COPEL              1018866491  224817 23525040   3628209
>  5 LIGHT               557206112   58074 22902552   3640182
>  6 CELESC              721455274  144896 18105811   2237127
>  7 COELBA              436436014  215001 14286757   4622046
>  8 ELEKTRO             414602018  107116 13398558   2123670
>  9 CPFL - PIRATININGA  195789961   22236 13013378   1367488
> 10 BANDEIRANTE         286832273   27496 12536237   1482518
> 11 CELPE               350651684  120428 10001560   2994259
> 12 AMPLA               436532756   51050  9506961   2365558
> 13 CELG                691472253  199494  9344291   2213198
> 14 RGE                 186357415   84997  7993103   1226079
> 15 COELGE              316166876  120300  7929212   2744830
> 16 ESCELSA             241433335   56960  7897969   1185432
> 17 AES SUL             206122962   76133  7616460   1150518
> 18 CEEE                385990997   71892  7277929   1438072
> > inputs<- data.frame(dados[,2]) # seleciona coluna 2 do objeto data
> > outputs <- data.frame(dados[,c(3,4,5)]) # seleciona colunas 3, 4 e 5 do objeto data
> > N<- dim(dados)[1] # número de DMUs
> > s <- dim(inputs)[2] # número de inputs
> > m <- dim(outputs)[2] # número de outputs
> > f.rhs <- c(rep(0,1,N),1) # RHS
> > f.dir <- c(rep("<=",1,N),"=") # direção das restrições
> > aux <- cbind(-1*inputs,outputs) # matriz com os coeficientes tecnológicos em (6)
> > for (i in 1:N) {
> +   f.obj <- c(0*rep(1,s),as.numeric(outputs[i,])) # coeficientes da função objetivo
> +   f.con <- rbind(aux ,c(as.numeric(inputs[i,]), + rep(0,1,m))) # adiciona a restrição bTz=1
> +   results <- lp("max",as.numeric(f.obj),f.con,f.dir,f.rhs,scale=1,compute.sens=TRUE) # resolve PPL
> +   multipliers <- results$solution # multiplicadores
> +   efficiency <- results$objval # indices de eficiência
> +   duals <- results$duals # ???
> +   if (i==1) {
> +     weights <- multipliers
> +     effcrs <- efficiency
> +     lambdas <- duals [seq(1,N)]
> +   } else {
> +     weights <- rbind(weights,multipliers)
> +     effcrs <- rbind(effcrs , efficiency)
> +     lambdas <- rbind(lambdas,duals[seq(1,N)])
> +   }
> + }
> > ###################################################################
> > planilha <- cbind(effcrs,weights)
> > #ESSA PARTE NÃO ESTÁ FUNCIONANDO###################################
> > rownames(planilha) <- dados [,1] # nomeas das linhas (empresas)
> Error in dimnames(x) <- dn :
>   comprimento de 'dimnames' [1] não é igual ao tamanho do array
> 
> Segue a planilha gerada, na coluna A preciso constar os nomes da coluna A (UTILITY)
> efficiency	OPEX	NETWORK	MWH	CUSTOMERS
> effcrs	0,58270216	8,00548E-10	0	6,07396E-09	5,6817E-08
> efficiency	0,579460003	5,94412E-10	9,73842E-07	3,50295E-09	0
> efficiency.1	0,885425355	2,0109E-09	0	1,52572E-08	1,42719E-07
> efficiency.2	0,518585846	9,81483E-10	7,95216E-07	1,11913E-08	2,10933E-08
> efficiency.3	0,775513183	1,79467E-09	0	1,36166E-08	1,27372E-07
> efficiency.4	0,523933705	1,38609E-09	1,28427E-06	1,86596E-08	0
> efficiency.5	1	2,29129E-09	1,85644E-06	2,61264E-08	4,92426E-08
> efficiency.6	0,687899797	2,41195E-09	1,95421E-06	2,75023E-08	5,18359E-08
> efficiency.7	1	5,10751E-09	0	7,6844E-08	0
> efficiency.8	0,698435209	3,48636E-09	0	2,64519E-08	2,47436E-07
> efficiency.9	0,82245379	2,85183E-09	0	2,16376E-08	2,02402E-07
> efficiency.10	0,549836367	2,29078E-09	0	1,73807E-08	1,62583E-07
> efficiency.11	0,585646	1,44619E-09	2,93566E-06	0	0
> efficiency.12	1	5,36603E-09	8,79133E-06	3,16227E-08	0
> efficiency.13	0,819757504	3,16289E-09	0	0	2,98655E-07
> efficiency.14	0,669679648	4,14193E-09	3,35587E-06	4,72283E-08	8,90153E-08
> efficiency.15	0,840551996	4,85147E-09	3,93075E-06	5,53189E-08	1,04264E-07
> efficiency.16	0,44597084	2,59073E-09	2,09906E-06	2,95408E-08	5,56781E-08
> 
> Se puderem ajudar, fico agradecido.
> Atenciosamente
> 
> Márcio Boareto
> >
> 
> _______________________________________________
> 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.

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20200404/d86db7f0/attachment.html>


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