[英]How to subset data frame based on user specified conditions
我有一个数据框,其中包含三个不同的贷款人口(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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.