<div dir="ltr"><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)">Ola amigos de R,</div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)"><br></div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)">Estou tentando fazer um função para um plot mas sem obrigar que o usuário chame as variáveis de um banco entre aspas. Isso porque no conjunto de funções hierarquizadas, todas as outras não precisam que os argumentos sejam character, vai facilitar muito inclusive pra documentar. Eu achei a função Hmisc::Cs que faz o que eu gostaria, mas não gostaria de criar uma dependencia do Hmisc apenas por conta dessa função. Ao mesmo tempo, eu não consigo saber o que tem dentro da Cs() por que quando digito Cs no console, esse retorna apenas o namespace. Eu gostaria de clonar a Cs ou dar um outro jeito de não obrigar que usuario entrasse as variáveis como character. Eu dei uma olhada nas fuçoes parse, deparse e substitute no pacote base mas não consegui me desenrolar. </div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)"><br></div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)">Assim funciona</div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)"><br></div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)">mydata <- data.frame(Var1 = rnorm(10, 1 , 2), Var2 = rnorm(10, 2, 2)) <br></div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)">myplot <- function(x, y, data){<br></div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)"> plot(data[ , c(x, y)])</div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)">}</div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)">myplot("Var1", "Var2", mydata)<br></div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)"><br></div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)"># Mas eu gostaria de algo assim... </div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)"><br></div><div class="gmail_default" style="font-family:"arial black",sans-serif;font-size:small;color:rgb(7,55,99)"><div class="gmail_default">myplot <- function(x, y, data){<br></div><div class="gmail_default"> if ( is.character(x) & is.character(y)){</div><div class="gmail_default"> plot(data[ , c(x, y)])</div><div class="gmail_default"> } else { # essa parte não funciona</div><div class="gmail_default"> plot(data[ , Hmisc::Cs(x, y)]) # essa é a parte que estou enrolado pq não quero depender de Hmisc</div><div class="gmail_default">}</div><div class="gmail_default">myplot(Var1, Var2, mydata)</div><div class="gmail_default"><br></div><div class="gmail_default">Eu pensei numa coisa do tipo ...</div><div class="gmail_default"><br></div><div class="gmail_default">with(mydata, plot(Var1 , Var2))</div><div class="gmail_default"><br></div><div class="gmail_default"> Mas dentro da função não funciona...</div><div class="gmail_default"><br></div><div class="gmail_default"><div class="gmail_default">myplot <- function(x, y, data){</div><div class="gmail_default"> if ( is.character(x) & is.character(y)){</div><div class="gmail_default"> plot(data[ , c(x, y)])</div><div class="gmail_default"> } else {</div><div class="gmail_default"> with(data, plot(x, y)) </div><div class="gmail_default"> }</div><div class="gmail_default">}</div><div class="gmail_default">myplot( Var1, Var2, mydata)</div><div><br></div></div><div class="gmail_default">Abraços fortes, </div></div><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><font face="'courier new', monospace" style="background-color:rgb(255,255,255)" color="#000066"><br></font></div><div dir="ltr"><span style="color:rgb(0,0,102);font-family:"courier new",monospace">Pedro Brasil</span><br></div></div></div></div>
</div>