[R-br] Subscribe - Erro ao exportar Dados para o Excel
Marcio Boareto
marcioboareto em gmail.com
Sáb Abr 4 09:02:27 -03 2020
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 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 *1*249*143*613 *45*213 39*922*710 5*987*873
2 CEMIG *1*682*334*644 *460*219 37*476*802 6*832*546
3 CPFL - PAULISTA 497*290*782 *89*879 25*267*579 3*502*793
4 COPEL *1*018*866*491 *224*817 23*525*040 3*628*209
5 LIGHT 557*206*112 *58*074 22*902*552 3*640*182
6 CELESC 721*455*274 *144*896 18*105*811 2*237*127
7 COELBA 436*436*014 *215*001 14*286*757 4*622*046
8 ELEKTRO 414*602*018 *107*116 13*398*558 2*123*670
9 CPFL - PIRATININGA 195*789*961 *22*236 13*013*378 1*367*488
10 BANDEIRANTE 286*832*273 *27*496 12*536*237 1*482*518
11 CELPE 350*651*684 *120*428 10*001*560 2*994*259
12 AMPLA 436*532*756 *51*050 9*506*961 2*365*558
13 CELG 691*472*253 *199*494 9*344*291 2*213*198
14 RGE 186*357*415 *84*997 7*993*103 1*226*079
15 COELGE 316*166*876 *120*300 7*929*212 2*744*830
16 ESCELSA 241*433*335 *56*960 7*897*969 1*185*432
17 AES SUL 206*122*962 *76*133 7*616*460 1*150*518
18 CEEE 385*990*997 *71*892 7*277*929 1*438*072
> 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
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20200404/c4923db1/attachment.html>
Mais detalhes sobre a lista de discussão R-br