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: dtie...@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 
> <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@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.

_______________________________________________
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.

Responder a