[R-br] Passar parâmetro para with() dentro de uma função

Rodrigo Coster rcoster em gmail.com
Segunda Agosto 19 16:31:49 BRT 2013


Fernando,

foi desatenção minha na hora de fazer o exemplo. Segue sem repetir nomes e
com o problema persistindo.

dados <- data.frame(x=1:10, v1=rnorm(10), v2=rnorm(10))

with(dados, v1+v2)

func <- function(data, funcao) {
 with(data, funcao)
}
func(dados, v1+v2)
func(dados, 'v1+v2')


2013/8/19 FHRB Toledo <fernandohtoledo em gmail.com>

> Faça:
>
> planilha <- data.frame(x=1:10, v1=rnorm(10), v2=rnorm(10))
>
> with(planilha, v1+v2) # Fora da função funciona
>
> func <- function(dados, func) {
>  with(dados, func)
> }
>
> func(planilha, v1+v2) # Da erro na hora de chamar a função
>
> Talvez seja qq confusão na atribuição de nomes, parâmetros para a função.
>
> att,
> FH
>
>
> 2013/8/19 Rodrigo Coster <rcoster em gmail.com>
>
>> Caros,
>>
>> eu tenho uma função que me retorna um data.frame() com várias colunas que
>> vou utilizar para outros calculos. Eu queria facilitar a minha vida e
>> colocar esses calculos dentro da função, como um parâmetro (dado que não
>> existe somente um calculo). Encontrei uma maneira de fazer isso fora da
>> função pelo with() ou até mesmo evalq(), só que não consegui fazer isso
>> dentro da função. Eu entendo os erros que dão e concordo com eles, mas não
>> consegui encontrar uma maneira que funcione.
>>
>> Basicamente é isso:
>>
>> dados <- data.frame(x=1:10, v1=rnorm(10), v2=rnorm(10))
>>
>> with(dados, v1+v2) # Fora da função funciona
>>
>> func <- function(data, func) {
>>  with(dados, func)
>> }
>> func(dados, v1+v2) # Da erro na hora de chamar a função
>> func(dados, 'v1+v2') # Retorna o string
>>
>> Alguma sugestão/solução?
>>
>> _______________________________________________
>> R-br mailing list
>> R-br em 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 em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130819/0ba9026e/attachment.html>


Mais detalhes sobre a lista de discussão R-br