根据动态条件对列表中的所有数据帧进行子集

时间:2017-08-06 21:53:26

标签: r

我有一个名为'maxDF'的数据框

factor max_condition
A       7
B       4
C       6

我有一个名为“我的列表”的列表,其中包含多个共享相同变量(列名称)的数据帧:

mylist <- c('A', 'B', 'C', etc)

数据框架结构示例

mylist$A
factor condition
A            0
A            3
A            6
A            7
A            8
A            9

mylist$B
factor condition
B            0
B            1
B            2
B            3
B            4
B            5

我希望根据从maxDF

获取的条件,通过动态条件对这些数据帧进行子集化

我可以为每个数据框手动设置,如下所示

conditionA = maxDF$max_condition[maxDF$factor=='A']
filter(mylist$A, condition<=conditionA)

A
factor condition
A            0
A            3
A            6
A            7

我想询问是否有任何方法可以自动对列表'mylist'中的所有数据帧进行子集化,而不是逐个进行,因为我在真实列表中有99个数据帧。

我期待听到您的见解。

亲切的问候,

2 个答案:

答案 0 :(得分:0)

lapply(1:nrow(maxDF), function(i) filter(mylist[[i]], condition < maxDF[i,2]) )

应该做的。

答案 1 :(得分:0)

您只需使用import { AppRegistry, Image } from 'react-native'; 稍微修改代码即可使其正常工作:

lapply

返回:

mylist2 = lapply(mylist, function(x) {
m = maxDF[maxDF$factor==unique(x$factor),]$max_condition;
x[x$condition<=m,] })