2016-03-23 8 views
0

Wie kann ich eine Teilmenge aus einer Liste von Datenrahmen durch den Namen des Datenrahmens erstellen?erstellen Teilmenge für eine Liste von Datenrahmen mit Namen in R

Zum Beispiel

d1<-data.frame(a=rnorm(5), b=c(rep(2006, times=4),NA)) 
b2<-data.frame(a=1:5, b=c(2007, 2007, NA, NA, 2007)) 
my.ls <- list(d1 = d1, b2 = b2) 
my.ls 

nehme ich (oder Filter?) Jeden Datenrahmen, die die Buchstaben enthielten b in dem Datenrahmen Namen auswählen wollte, wie konnte ich über diese gehen?

Ich habe dies versucht:

flrcp45 <- lapply(my.ls, subset, contains = "b") 

aber es enthält alles.

Antwort

1

Sie könnten versuchen, diese (mit der Aufnahme von Laterow des Hinweises):

my.ls[grepl("b",names(my.ls))] 
$b2 
    a b 
1 1 2007 
2 2 2007 
3 3 NA 
4 4 NA 
5 5 2007 
+1

Sie brauchen noch nicht einmal 'sapply':' my.ls [Grepl ("b", Namen (my.ls))] '' – Laterow

+1

@Laterow Sie haben Recht, danke! :-) – DatamineR

+0

@Laterow, danke für den prägnanten Code. – SoilSciGuy