<div dir="ltr">Uma dúvida<br><div><br>Eu estou escrevendo um código utilizando o R panel. Ele é uma extensão do código escrito pelo Walmes (no blog ridículas), no qual pretendo adaptá-lo para trabalhar com mais modelos. No código abaixo pretendo fornecer interfaces para a importação dos dados pelo usuário. O nome das variáveis dependente e independente utilizada no banco de dados importado deve ser fornecida pelo usuário e o código substitui o nome destas variáveis por y e x para processamento. <br><br></div><div>Acontece que a função "var_nome" ela captura os nomes fornecidos pelo usuário, no entanto não estou conseguindo realizar a mudança dos respectivos nomes na base de dados. O comando colnames(da)[grep( var_dep,colnames(da))]<-"y"  funciona fora da função, mas não parece funcionar dentro da função, uma vez que após rodar os comando abaixo e digitar  head(da), os nomes das colunas não são alterados.<br><br></div><div>No exemplo abaixo as colunas PG e Tempo, devem ser substituídas por Y e X respectivamente<br></div><div><br></div><div>Como posso resolver isso? <br><br></div><div>require(rpanel)<br></div><div><br>database<-function(panel){<br>    da<-read.csv(file.choose(), header=TRUE)<br>    return(panel)<br>}<br>#-----------------------------------------------------------------------------<br>var_nome<-function(panel){<br>   var_dep<<-panel$var_y<br>   var_indep<<-panel$var_x<br>   colnames(da)[grep(var_dep,colnames(da))]<-"y"<br>   colnames(da)[grep(var_indep,colnames(da))]<-"x"<br>   return(panel)<br>   <br>}<br><br>panel <- rp.control()<br>#botão para importar banco de dados<br>rp.button(panel, action=database, title="importar dados")<br># Obtem os nomes das variáveis dependentes<br>rp.textentry(panel=panel, variable=var_y,<br>             labels="nome da variável dependente(y):",<br>             initval="",<br>             action=var_nome)<br><br> rp.textentry(panel=panel, variable=var_x,<br>                 labels="nome da variável independente(x):",<br>                 initval="",<br>                 action=var_nome)<br><br>dput(da[1:134,])<br><br></div><div>da<-structure(list(Tubo = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, <br>2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, <br>3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, <br>4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, <br>4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, <br>5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, <br>6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, <br>7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 8L), Amostra = c(1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 2L), dieta = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, <br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), concentracao = c(20L, <br>20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, <br>20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, <br>20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, <br>20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, <br>20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, <br>20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, <br>20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, <br>20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, <br>20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, <br>20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, <br>20L, 20L, 40L), Tempo = c(1L, 2L, 3L, 4L, 5L, 6L, 9L, 12L, 18L, <br>24L, 30L, 36L, 48L, 60L, 72L, 84L, 96L, 120L, 144L, 1L, 2L, 3L, <br>4L, 5L, 6L, 9L, 12L, 18L, 24L, 30L, 36L, 48L, 60L, 72L, 84L, <br>96L, 120L, 144L, 1L, 2L, 3L, 4L, 5L, 6L, 9L, 12L, 18L, 24L, 30L, <br>36L, 48L, 60L, 72L, 84L, 96L, 120L, 144L, 1L, 2L, 3L, 4L, 5L, <br>6L, 9L, 12L, 18L, 24L, 30L, 36L, 48L, 60L, 72L, 84L, 96L, 120L, <br>144L, 1L, 2L, 3L, 4L, 5L, 6L, 9L, 12L, 18L, 24L, 30L, 36L, 48L, <br>60L, 72L, 84L, 96L, 120L, 144L, 1L, 2L, 3L, 4L, 5L, 6L, 9L, 12L, <br>18L, 24L, 30L, 36L, 48L, 60L, 72L, 84L, 96L, 120L, 144L, 1L, <br>2L, 3L, 4L, 5L, 6L, 9L, 12L, 18L, 24L, 30L, 36L, 48L, 60L, 72L, <br>84L, 96L, 120L, 144L, 1L), PG = c(4.18, 6.16, 8.13, 9.94, 11.74, <br>13.72, 17.95, 20.77, 21.16, 21.16, 21.16, 21.16, 21.16, 21.16, <br>21.16, 21.16, 21.16, 21.16, 21.16, 3.56, 6.16, 9.77, 12.98, 15.35, <br>16.76, 20.15, 21.72, 22.51, 22.51, 22.51, 22.51, 22.51, 22.51, <br>22.51, 22.51, 22.51, 22.51, 22.51, 4.8, 8.81, 12.42, 14.62, 16.82, <br>18, 20.37, 21.78, 22.18, 22.18, 22.18, 22.18, 22.18, 22.18, 22.18, <br>22.18, 22.18, 22.18, 22.18, 3.96, 7.96, 12.19, 14.17, 15.97, <br>17.38, 19.58, 20.99, 21.95, 21.95, 21.95, 21.95, 21.95, 21.95, <br>21.95, 21.95, 21.95, 21.95, 21.95, 4.41, 8.02, 11.23, 13.43, <br>15.41, 16.82, 19.02, 20.6, 20.99, 20.99, 20.99, 20.99, 20.99, <br>20.99, 20.99, 20.99, 20.99, 20.99, 20.99, 4.58, 8.19, 11.01, <br>12.59, 14.39, 15.58, 17.55, 19.13, 20.09, 20.09, 20.09, 20.09, <br>20.09, 20.09, 20.09, 20.09, 20.09, 20.09, 20.09, 4.8, 8.19, 10.95, <br>12.93, 14.73, 16.31, 18.51, 20.09, 20.88, 20.88, 20.88, 20.88, <br>20.88, 20.88, 20.88, 20.88, 20.88, 20.88, 20.88, 4.58)), .Names = c("Tubo", <br>"Amostra", "dieta", "concentracao", "Tempo", "PG"), row.names = c(NA, <br>134L), class = "data.frame")<br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">Em 27 de fevereiro de 2016 09:16, Éder Comunello <span dir="ltr"><<a href="mailto:comunello.eder@gmail.com" target="_blank">comunello.eder@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Senhores, bom dia!</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Realmente o script disponibilizado pelo Walmes é muito bom. É pra aprender o caminho das pedras!</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Mas me surgiu uma ideia... Supondo que se queira apenas visualizar o ajuste do modelo, talvez bastasse utilizar predict() e depois adicionar os resultados ao gráfico.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default"><span class=""><div class="gmail_default"><font face="monospace, monospace">### <code r></font></div><div class="gmail_default"><font face="monospace, monospace">head(Orange, 3)</font></div><div class="gmail_default"><font face="monospace, monospace">mForm <- as.formula("circumference ~ A/(1+exp((B-age)/C))"); mForm; class(mForm)</font></div><div class="gmail_default"><font face="monospace, monospace">mExpr <- mForm[[3]]; mExpr; class(mExpr) # A/(1 + exp((B - age)/C))</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">fm1   <- nls(mForm, Orange, start=list(A=160, B=700, C=350))</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div></span><div class="gmail_default"><font face="monospace, monospace">new  <- seq(xLim[1], xLim[2], len=101)</font></div><div class="gmail_default"><font face="monospace, monospace">pre1 <- predict(fm1, newdata=list(age=new))</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">plot(circumference~age, Orange)</font></div><div class="gmail_default"><font face="monospace, monospace">lines(new, pre1, col=2)</font></div><div class="gmail_default"><font face="monospace, monospace"># title(mForm)</font></div><div class="gmail_default"><font face="monospace, monospace">title(mExpr)</font></div><div class="gmail_default"><font face="monospace, monospace">### </code></font></div></div><span class=""><div class="gmail_extra"><br clear="all"><div><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font style="font-size:small" face="arial, helvetica, sans-serif"><div style="font-family:'trebuchet ms',sans-serif;display:inline">​</div></font><font style="font-size:12.8px" face="arial, helvetica, sans-serif"><span style="font-size:small">================================================</span><br>Éder Comunello</font><div style="font-size:12.8px"><span style="font-family:arial,helvetica,sans-serif">Agronomist (UEM), MSc in Environ. Sciences (UEM)</span><font face="arial, helvetica, sans-serif"><br></font></div><div style="font-size:12.8px"><div style="font-size:small"><span style="font-family:arial,helvetica,sans-serif">DSc in Agricultural Systems Engineering (USP/Esalq)</span><br></div><div><span style="font-size:small">Brazilian Agricultural Research Corporation (</span><font style="font-size:small" face="arial, helvetica, sans-serif">Embrapa)</font></div><div><div><font style="font-size:small" face="arial, helvetica, sans-serif">Dourados, MS, Brazil </font><font face="arial, helvetica, sans-serif" size="2">|<O>|</font></div><div style="font-size:small"><span style="font-family:arial,helvetica,sans-serif">================================================</span><br></div></div></div><div style="font-size:small"><font face="arial, helvetica, sans-serif">GEO, </font>-22.2752, -54.8182, 408m<span style="font-family:arial,helvetica,sans-serif"><br></span></div><div style="font-size:12.8px"><span style="font-size:small;font-family:arial,helvetica,sans-serif">UTC-04:00 / DST: UTC-03:00</span></div><div><div><div><br></div><div><br></div></div><div style="font-size:small"><br></div></div></div></div></div></div></div></div></div></div></div></div></span></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">=======================================================================<br>Fernando Souza<br>Zootecnista, DSc. Produção Animal<br><a href="mailto:e-mail%3Anandodesouza@gmail.com" target="_blank">e-mail:nandodesouza@gmail.com</a><br><a href="https://producaoanimalcomr.wordpress.com/" target="_blank">https://producaoanimalcomr.wordpress.com/</a><br>========================================================================<br></div></div></div></div></div></div></div></div>
</div>