[R-br] Ajuda para nomear variáveis para uma função repetida

Rodrigo Coster rcoster em gmail.com
Quinta Janeiro 5 16:44:53 BRST 2012


Já tentou usando as funções get() e assign()? Nunca usei elas, mas acredito
que resolvam o teu problema. Reformulei o que te mandei, unica coisa extra
que tu tem que fazer é na variável 'variaveis' botar em formato de string o
nome das variáveis da coordenadas.

func <- function(X) {
 ic_inf_X [j] = ic_inf_X [j] = ic_inf_X [j] = rep(0,n)
 for (j in 1:n) {
  X_e = rep(X[j], length(m))+ (runif(m, -U,U))
  funX = function(X_e){mean(X_e)}
  X_boot = one.boot(X_e,funX,R)
  X_boot_ic= boot.ci(X_boot,conf = c(0.95),type = c("norm"))
  ic_inf_X [j]= X_boot_ic$normal[2]
  ic_sup_X [j] = X_boot_ic$normal[3]
  X_b[j]= X_boot$t0
 }
 return(cbind(ic_inf=ic_inf,ic_sup=ic_sup,b=b))
}
*variaveis = c('X','Y','Z')*
for (i in variaveis) {
 temp <- func(get(i))
 assign(paste('ic_inf_',i,sep=''),temp[,1])
 assign(paste('ic_sup_',i,sep=''),temp[,2])
 assign(paste(i,'_b',sep=''),temp[,3])
}




[]'s



2012/1/5 Maria Papa <mceliamat em yahoo.com.br>

> Obrigada Rodrigo,
>
> Certo eu entendi a sua sugestão e achei interessante, mas eu preciso de
> algo que eu pudesse rodar o código todo uma única vez, eu até pensei em
> colocar tudo em um "for", mas eu não consigo fazer com que ele entenda os
> nomes das coordenadas.
>
> []
>
> Célia
>
>
>   ------------------------------
> *De:* Rodrigo Coster <rcoster em gmail.com>
> *Para:* r-br em listas.c3sl.ufpr.br
> *Enviadas:* Quinta-feira, 5 de Janeiro de 2012 15:23
> *Assunto:* Re: [R-br] Ajuda para nomear variáveis para uma função repetida
>
> Maria,
>
> tu pode colocar isso dentro de uma função e repetir a função 3 vezes.
> Substitui o comando que tu nos passou por esse, a principio ele deveria
> funcionar. Depois disso é só dividir as matrizes outX, outY e outZ nas 3
> variaveis que tu quer, ou trabalhar nelas mesmo.
>
> func <- function(X) {
>  ic_inf_X [j] = ic_inf_X [j] = ic_inf_X [j] = rep(0,n)
>  for (j in 1:n) {
>   X_e = rep(X[j], length(m))+ (runif(m, -U,U))
>   funX = function(X_e){mean(X_e)}
>   X_boot = one.boot(X_e,funX,R)
>   X_boot_ic= boot.ci(X_boot,conf = c(0.95),type = c("norm"))
>   ic_inf_X [j]= X_boot_ic$normal[2]
>   ic_sup_X [j] = X_boot_ic$normal[3]
>   X_b[j]= X_boot$t0
>  }
>  return(cbind(ic_inf=ic_inf,ic_sup=ic_sup,b=b))
> }
> outX = func(X)
> outY = func(Y)
> outZ = func(Z)
>
>
>
>
> []'s
>
>
> 2012/1/5 Maria Papa <mceliamat em yahoo.com.br>
>
> Olá pessoal, boa tarde,
>
> Gostaria da ajuda de vcs para nomear variáveis. Eu tenho este "for" que é
> aplicado para as três coordenadas de um ponto (XYZ). O procedimento é
> idêntico para os três, por isso, eu gostaria de saber se tem alguma forma
> de usar este mesmo conjunto mundando apenas o nome das coordenadas, no
> exemplo abaixo, eu faço com X e tenho os resutlados para X, depois e
> preciso para Y e Z. Eu fiz algumas tentativas com  "for," mas não deu certo.
>
> for (j in 1:n) {
> X_e = rep(X[j], length(m))+ (runif(m, -U,U))
> funX = function(X_e){mean(X_e)}
> X_boot = one.boot(X_e,funX,R)
> X_boot_ic= boot.ci(X_boot,conf = c(0.95),type = c("norm"))
> ic_inf_X [j]= X_boot_ic$normal[2]
> ic_sup_X [j] = X_boot_ic$normal[3]
> X_b[j]= X_boot$t0
> }
>
>
> os resultados que eu preciso no final e portanto devem ser trocados o nome
> das coordenadas são os intervalos de confiança ic_inf_X, ic_sup_X e X_b
>
>
> Desde já agradeço a todos.
>
> Célia
>
> **
>
> _______________________________________________
> 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.
>
>
> _______________________________________________
> 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/20120105/73a69a4d/attachment.html>


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