对列表中的 data.frames 执行逻辑运算

performing logical operation on data.frames within list

我有一个维度为 10,2 的二维列表对象。 每个元素都包含一个 data.frame,包含 8100 个观测值和 2 个变量。

我正在尝试获得一个相同形状的对象,其中包含针对 data.frame 的每个元素的测试 I 运行 的逻辑。

到目前为止,我尝试了下面的代码,但它为我提供了每个 data.frame 的逻辑,而不是这些

中的元素
# 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))

我们需要根据索引获取'temp',然后应用test。它将return一个list的逻辑矩阵。根据 OP 对象中的描述,即相同的对象意味着具有相同的维度(?)。在那种情况下,尝试

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