【发布时间】:2017-08-15 16:49:33
【问题描述】:
假设我想运行这个:
MS_date<-bind_inpatient_MSW %>%
arrange(NRIC,
APPROVED_DATE_BILL,APPROVED_DATE_FF_APPLICATION) %>%
group_by(NRIC,
APPROVED_DATE_BILL,APPROVED_DATE_FF_APPLICATION) %>%
mutate(n_marital_status=n_distinct(MARITAL_STATUS,na.rm=TRUE))
还有这个
TH_date<-bind_inpatient_MSW %>%
arrange(NRIC,
APPROVED_DATE_BILL) %>%
group_by(NRIC,
APPROVED_DATE_BILL) %>%
mutate(n_TH=n_distinct(TYPE_OF_HOUSING,na.rm=TRUE))
这两者的不同之处在于排列和分组数据框的变量以及添加的变量。我想编写一个用户定义的函数,这样我就不必多次编写了。我尝试如下:
df_date<-function(df,grpby,cntby){
dfnew<-df %>%
arrange(grpby) %>%
group_by(grpby) %>%
mutate(n=n_distinct(cntby,na.rm=TRUE))
return(dfnew)
}
并申请df_date(bind_inpatient_MSW,NRIC,APPROVED_DATE_BILL,APPROVED_DATE_FF_APPLICATION,MARITAL_STATUS)
和
df_date(bind_inpatient_MSW,NRIC,APPROVED_DATE_BILL,TYPE_OF_HOUSING)
他们不会工作。我该如何解决这个问题?
【问题讨论】:
-
检查
cntby是否存在,如果不存在则将grpby分配给cntby,并使用group_by_和arrange_,将字符串作为变量名传递。 stackoverflow.com/questions/7964830/… 的可能重复项
标签: r function dplyr user-defined-functions