[R-br] Converter o vetor de slot de lista para que cada elemento do vetor seja um slot dela

Rodrigo Coster rcoster em gmail.com
Sábado Abril 9 16:10:43 BRT 2011


Não é muito elegante (leia-se: vou ser morto por mandar um código com for
pra lista :P), mas faz o que tu quer...

fn <- function(x){
   sen(x)
 }
vec <- c(a=1, b=2, c=3, d=4)

l1 <- as.list(vec)
lista <- list(x=NULL)
n <- 1:length(vec)

for (i in 1:length(vec)) {
 lista[[i+1]] <- l1[[i]]
}
names(lista)[n+1] <- names(vec)
lista[[length(n)+2]] <- body(fn)

Outra solução que consegui foi fazer uma lista dentro da lista, dai ficou
assim: list(x=NULL,as.list(vec),body(fn))

2011/4/9 Walmes Zeviani <walmeszeviani em gmail.com>

> Saudações a todos,
>
> Estou montando um procedimento em que numa certa altura do código eu
> preciso de uma lista. Eu possuo um vetor nomeado que quero incluir nessa
> lista, mas que cada elemento do vetor seja um slot da lista, sendo o
> primeiro slot é x NULL e o ultimo o corpo de uma função. Abaixo tento via
> código esclarecer o meu objetivo.
>
>
>  #-----------------------------------------------------------------------------
>  # uma função
>
>  fn <- function(x){
>    sen(x)
>  }
>
>
>  #-----------------------------------------------------------------------------
>  # um vetor
>
>  vec <- c(a=1, b=2, c=3, d=4)
>
>
>  #-----------------------------------------------------------------------------
>  # a lista que sei até agora obter(preciso converte-la)
>
>  list(x=NULL, vec, body(fn))
> $x
> NULL
>
> [[2]]
> a b c d
> 1 2 3 4
>
> [[3]]
> {
>     sen(x)
> }
>
>
>
>  #-----------------------------------------------------------------------------
>  # como faço para obter essa lista aqui, em que cada elemento do vetor
>  # é um slot da lista, ficando assim, mas convertendo a lista de cima?
>  # essa abaixo é a lista no formato de que preciso
>
>  list(x=NULL, a=1, b=2, c=3, d=4, body(fn))
> $x
> NULL
>
> $a
> [1] 1
>
> $b
> [1] 2
>
> $c
> [1] 3
>
> $d
> [1] 4
>
> [[6]]
> {
>     sen(x)
> }
>
>
>  #-----------------------------------------------------------------------------
>
> Grato à todos.
> Walmes.
>
> ==========================================================================
> Walmes Marques Zeviani
> LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W)
> Departamento de Estatística - Universidade Federal do Paraná
> fone: (+55) 41 3361 3573
> VoIP: (3361 3600) 1053 1173
> e-mail: walmes em ufpr.br
> twitter: @walmeszeviani
> homepage: http://www.leg.ufpr.br/~walmes
> linux user number: 531218
> ==========================================================================
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20110409/e6785d16/attachment.html>


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