Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何根据用户指定的条件对数据帧进行子集划分_R_Dplyr - Fatal编程技术网

R 如何根据用户指定的条件对数据帧进行子集划分

R 如何根据用户指定的条件对数据帧进行子集划分,r,dplyr,R,Dplyr,我有一个数据框包含三个不同的贷款人口a,B和C。每个贷款人口有两个子组NR,RF。数据框架还包含贷款水平年和风险类型信息 我需要编写函数来根据用户定义的参数对数据帧进行子集。用户可以选择运行整个贷款群体,也可以选择单个群体、子群体、风险类型或这些变量的任意组合。 例如:use可能希望仅子集pop='A'或仅子集pop='C',year==2001或risk_type==3 有人能建议我完成这项任务的方法吗 这是样本数据 df <- data.frame(id=c(1:10),

我有一个数据框包含三个不同的贷款人口a,B和C。每个贷款人口有两个子组NR,RF。数据框架还包含贷款水平年和风险类型信息

我需要编写函数来根据用户定义的参数对数据帧进行子集。用户可以选择运行整个贷款群体,也可以选择单个群体、子群体、风险类型或这些变量的任意组合。 例如:use可能希望仅子集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)
我的子集=函数。。。第……款,。。。;my_subsetop==C或仅使用香草子集;我真的不知道用户在这里与您的数据交互意味着什么。