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.