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

Oswaldo G Cruz oswaldo em fiocruz.br
Sábado Abril 9 16:36:07 BRT 2011


Opsss!
A primeira função tinha erros!


cust <- function(x,fun) {

  nomes <- names(x)
  lista <- list()
  lista[[1]] <- NULL
  TAM <- length(x)

  for (i in 1:TAM+1) lista[[i]] <- as.numeric(x[i-1])

  lista[[TAM+2]]   <- fun
  names(lista) <- c("x",names(x),"fun")
  lista
}

  
[]´s

Oswaldo

De: r-br-bounces em listas.c3sl.ufpr.br
[mailto:r-br-bounces em listas.c3sl.ufpr.br] Em nome de Walmes Zeviani
Enviada em: sábado, 9 de abril de 2011 15:30
Para: r-br em listas.c3sl.ufpr.br
Assunto: [R-br] Converter o vetor de slot de lista para que cada elemento do
vetor seja um slot dela

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
==========================================================================

-- 
Esta mensagem foi verificada pelo sistema de antivírus e 
acredita-se estar livre de perigo. 



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