2016-08-19 2 views
0

Ich habe ein 2-dimensionales List-Objekt mit der Dimension 10,2. Jedes Element enthält einen Datenrahmen mit 8100 Beobachtungen mit 2 Variablen.Durchführen logischer Operation auf data.frames innerhalb der Liste

Ich versuche, ein identisches geformtes Objekt zu erhalten, das logische Elemente für einen Test enthält, den ich auf jedem Element der data.frames ausführe.

Bisher habe ich versucht, Code unten, aber es gibt mir eine logische für jeden data.frame, nicht für die Elemente innerhalb dieser

# sample data: http://www.filedropper.com/sample_1 
# load('sample.Rdata') 

str(temp) 

List of 20 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -223 -224 -203 -198 -214 ... 
..$ Var2: num [1:8100] -178 -178 -178 -178 -178 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -223 -224 -203 -198 -214 ... 
..$ Var2: num [1:8100] -178 -178 -178 -178 -178 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -223 -224 -203 -197 -214 ... 
..$ Var2: num [1:8100] -178 -178 -178 -178 -178 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -223 -223 -203 -197 -214 ... 
..$ Var2: num [1:8100] -177 -177 -177 -177 -177 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -222 -223 -202 -197 -213 ... 
..$ Var2: num [1:8100] -177 -177 -177 -177 -177 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -222 -223 -202 -197 -213 ... 
..$ Var2: num [1:8100] -177 -177 -177 -177 -177 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -222 -223 -202 -196 -213 ... 
..$ Var2: num [1:8100] -177 -177 -177 -177 -177 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -222 -222 -202 -196 -213 ... 
..$ Var2: num [1:8100] -176 -176 -176 -176 -176 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -221 -222 -201 -196 -212 ... 
..$ Var2: num [1:8100] -176 -176 -176 -176 -176 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -221 -222 -201 -196 -212 ... 
..$ Var2: num [1:8100] -176 -176 -176 -176 -176 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -133 -134 -113 -108 -124 ... 
..$ Var2: num [1:8100] -88.2 -88.2 -88.2 -88.2 -88.2 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -133 -134 -113 -108 -124 ... 
..$ Var2: num [1:8100] -88.2 -88.2 -88.2 -88.2 -88.2 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -133 -134 -113 -108 -124 ... 
..$ Var2: num [1:8100] -88.2 -88.2 -88.2 -88.2 -88.2 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -133 -134 -113 -108 -124 ... 
..$ Var2: num [1:8100] -88.2 -88.2 -88.2 -88.2 -88.2 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -133 -134 -113 -108 -124 ... 
..$ Var2: num [1:8100] -88.2 -88.2 -88.2 -88.2 -88.2 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -133 -134 -113 -108 -124 ... 
..$ Var2: num [1:8100] -88.2 -88.2 -88.2 -88.2 -88.2 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -133 -134 -113 -108 -124 ... 
..$ Var2: num [1:8100] -88.2 -88.2 -88.2 -88.2 -88.2 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -133 -134 -113 -108 -124 ... 
..$ Var2: num [1:8100] -88.2 -88.2 -88.2 -88.2 -88.2 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -133 -134 -113 -108 -124 ... 
..$ Var2: num [1:8100] -88.2 -88.2 -88.2 -88.2 -88.2 ... 
    $ :'data.frame': 8100 obs. of 2 variables: 
..$ Var1: num [1:8100] -133 -134 -113 -108 -124 ... 
..$ Var2: num [1:8100] -88.2 -88.2 -88.2 -88.2 -88.2 ... 
- attr(*, "dim")= int [1:2] 10 2 
- attr(*, "dimnames")=List of 2 
..$ : NULL 
..$ : chr [1:2] "Var1" "Var2" 


test <- function(x) { 
    x > -50 & x < -70 
} 

out = sapply(seq_along(temp), function(x) test(x)) 

Antwort

0

Wir brauchen die ‚Temp‘ auf dem Index basiert zu bekommen und dann gelten die test. Es wird eine list der logischen Matrix zurückgegeben. Basierend auf der Beschreibung in dem OP-Objekt, d. H. Das identische Objekt impliziert, dass es die gleiche Dimension aufweist (?). Versuchen Sie in diesem Fall

lapply(seq_along(temp), function(i) test(temp[[i]])) 
+0

Ja, ich möchte die Ausgabe die gleiche Dimension haben. Diese vorgeschlagene Lösung gibt eine Liste von 20 Elementen anstelle von 10,2, kann aber natürlich leicht umgewandelt werden. – user255715

+0

@ user255715 Von der 'str (temp)' ist die Länge von 'temp' jeweils 20 mit 2 Spalten. Also ich bin mir nicht sicher über den 10, 2 Kommentar. – akrun

Verwandte Themen