2013-05-27 10 views
10

ho questa lista:Rimuovere elementi di una lista in modo esplicito

myList <- list(rnorm(10), rnorm(10), rnorm(10)) 

names(myList) <- c("one", "two", "three") 

$one 
[1] -0.07587506 -0.09997924 -0.41846732 1.41542651 -0.58678093 0.56909465 -1.11074541 
[8] 1.94663786 0.46381799 -0.11458166 

$two 
[1] 0.98883679 -0.06305794 -0.78961229 1.21091484 0.19636700 0.27458057 0.12374154 
[8] 0.83782946 -0.79627870 0.97675486 

$three 
[1] 0.67033455 -0.80243815 0.08716750 -2.90455146 -0.02433571 -0.93062428 -0.16886116 
[8] -0.60927976 -1.77758270 -1.05033148 

Voglio rimuovere two e three dalla lista e voglio fare riferimento a questi elementi utilizzando "due" e "tre". Ho provato:

myList <- myList[[-c("two", "three")]] 

... che dà un errore.

Come è possibile rimuovere two e three dall'elenco e fare riferimento a "due" e "tre"?

risposta

23
myList[which(names(myList) %in% c("two","three"))] <- NULL 
+2

Questo è più facile da capire, se si tenta di eliminarli su alla volta: ' myList [2] <- NULL; myList $ three <- NULL'. – MrGumble

+17

o semplicemente 'myList [c (" two "," three ")] <- NULL'. – flodel

Problemi correlati