On 4 Apr 2020, at 10:31, Marcio Boareto <marcioboareto@gmail.com> wrote:Prezado Prof DanielFicaria muito agradecido se puder me ajudar.Segue a planilha "dados", os resultados, o artigo e o script do R studio, se tiver como reproduzir.O artigo onde estou tentando reproduzir o modelo (está dando erro, pois o pacote de leitura da planilha foi descontinuado (xlsReadWrite) e estou tentando utilizar outro pacote para exportar o modelo para uma planilha.Desde já agradeço vossa atenção.Em sáb., 4 de abr. de 2020 às 10:22, Daniel Guimarães Tiezzi <dtiezzi@usp.br> escreveu:Ok, seria melhor VC enviar parte da sua planilha para podemos reproduzir o erro e resolver para VC.On Sat, 4 Apr 2020, 10:17 Marcio Boareto, <marcioboareto@gmail.com> wrote:Bom diaPrezado Prof DanielNão consegui resolver e o erro ainda persiste. Estou aprendo recentemente a usar o R para cálculo de eficiência em análise envoltória de dados, estou com dificuldades em exportar os resultados para uma planilha.Muito obrigado pela ajuda!Em sáb., 4 de abr. de 2020 às 09:49, Daniel Guimarães Tiezzi <dtiezzi@usp.br> escreveu:Bom diaO 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.DanielDaniel Tiezzi, MD, PhD
Oncologia / MastologiaProfessor 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@usp.br
On 4 Apr 2020, at 09:02, Marcio Boareto por (R-br) <r-br@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> require(lpSolve) # carrega pacote lpSolve previamente instaladoCarregando pacotes exigidos: lpSolve> require(xlsx) # carrega pacote xlsReadWrite previamente instaladoCarregando 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 5UTILITY OPEX NETWORK MWH CUSTOMERS<chr> <dbl> <dbl> <dbl> <dbl>1 ELETROPAULO 1249143613 45213 39922710 59878732 CEMIG 1682334644 460219 37476802 68325463 CPFL - PAULISTA 497290782 89879 25267579 35027934 COPEL 1018866491 224817 23525040 36282095 LIGHT 557206112 58074 22902552 36401826 CELESC 721455274 144896 18105811 22371277 COELBA 436436014 215001 14286757 46220468 ELEKTRO 414602018 107116 13398558 21236709 CPFL - PIRATININGA 195789961 22236 13013378 136748810 BANDEIRANTE 286832273 27496 12536237 148251811 CELPE 350651684 120428 10001560 299425912 AMPLA 436532756 51050 9506961 236555813 CELG 691472253 199494 9344291 221319814 RGE 186357415 84997 7993103 122607915 COELGE 316166876 120300 7929212 274483016 ESCELSA 241433335 56960 7897969 118543217 AES SUL 206122962 76133 7616460 115051818 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@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.--Márcio BoaretoAdministradorCRA-GO 15993Mestre em Gestão Organizacional pela UFG Catalão.Especialista em Gestão Financeira e Controladoria - UFG CatalãoGraduado em Administração de Empresas - UFG Catalão64 98137-9049 whatsapp--<resultscrs.xlsx><script -seget.R><dados.xlsx><44218525.pdf><script.docx>Márcio BoaretoAdministradorCRA-GO 15993Mestre em Gestão Organizacional pela UFG Catalão.Especialista em Gestão Financeira e Controladoria - UFG CatalãoGraduado em Administração de Empresas - UFG Catalão64 98137-9049 whatsapp