我有一个数据框,其中包含三个不同的贷款人口(A,B和C)。每个贷款人口都有两个子组(NR,RF)。数据框还具有贷款级别年份和风险类型信息。
我需要编写函数以根据用户定义参数对数据框进行子集化。用户可以选择运行整个贷款人口,也可以选择单个人口,子组,风险类型或这些变量的任意组合。例如:用户可能希望仅对pop ='A'子集或仅对pop ='C'子集&year == 2001或risk_type == 3。
有人可以建议我可以完成此任务的方法吗?
这是示例数据;
df <- data.frame(id=c(1:10),
pop=c(rep('A',3),rep('B',3),rep('C',4)),
subgroup=c('NR','NR','RF','RF','NR','RF','NR','NR','RF','NR'),
year=c(2000,2001,2002,2000,2001,2002,2000,2001,2002,2002),
risk_type=c(1,1,3,2,2,3,1,3,2,1)
)
您可以对dplyr过滤器做一个简单的包装:
library(dplyr)
library(lazyeval)
df_subset_ = function(condition)
df %>% filter_(.dots = condition)
df_subset = function(condition)
df_subset_(lazy(condition))
df_subset(pop == 'C' & year == 2001)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句