[英]Converting continuous variable to categorical with dplyrXdf
我正在尝试对某些数据进行一些初步探索。 我正在忙于分析连续变量的单向方法,方法是将它们转换为因子并按频段计算频率。
我想用dplyrXdf做到这一点,但对于我尝试的工作,它似乎与普通的dplyr不太一样
sample_data <- RxXdfData("./data/test_set.xdf") #sample xdf for testing
as_data_frame <- rxXdfToDataFrame(sample_data) #same data as dataframe
# Calculate freq by Buildings Sum Insured band
下面的代码将我的示例数据作为数据框导入
buildings_ad_fr <- as_data_frame %>%
mutate(bd_cut = cut(BD_INSURED_VALUE, seq(from = 150000, to = 10000000,by = 5000000))) %>%
group_by(bd_cut) %>%
summarise(exposure = sum(BENEFIT_EXPOSURE, na.rm = TRUE),
ad_pd_f = sum(ACT_AD_PD_CLAIM_COUNT)/sum(BENEFIT_EXPOSURE, na.rm = TRUE))
但是我无法使用数据的xdf版本执行相同的操作
buildings_ad_fr_xdf <- sample_data %>%
mutate(bd_cut = cut(BD_INSURED_VALUE, seq(from = 150000, to = 10000000,by = 5000000))) %>%
group_by(bd_cut) %>%
summarise(exposure = sum(BENEFIT_EXPOSURE, na.rm = TRUE),
ad_pd_f = sum(ACT_AD_PD_CLAIM_COUNT)/sum(BENEFIT_EXPOSURE, na.rm = TRUE))
我可以想到的解决方法是使用rxDataStep通过在transforms参数中传递bd_cut = cut(BD_INSURED_VALUE, seq(from = 150000, to = 10000000,by = 5000000))
来创建新列,但不应有必要采取中间步骤。
我试过在group_by
表达式之前使用.rxArgs函数,但这似乎也不起作用
buildings_ad_fr <- sample_data %>%
mutate(sample_data,.rxArgs = list(transforms = list(bd_cut = cut(BD_INSURED_VALUE,
seq(150000,
10000000,
5000000)))))%>%
group_by(bd_cut) %>%
summarise(exposure = sum(BENEFIT_EXPOSURE, na.rm = TRUE),
ad_pd_f = sum(ACT_AD_PD_CLAIM_COUNT)/sum(BENEFIT_EXPOSURE, na.rm = TRUE))
两次在xdf文件上都给出Error in summarise.RxFileData(., exposure = sum(BENEFIT_EXPOSURE, na.rm = TRUE),: with xdf tbls only works with named variables, not expressions
错误Error.RxFileData Error in summarise.RxFileData(., exposure = sum(BENEFIT_EXPOSURE, na.rm = TRUE),: with xdf tbls only works with named variables, not expressions
现在,我知道此程序包可以分解变量,但是我不确定如何使用它拆分连续变量
有谁知道如何做到这一点?
mutate
应该可以。 对于Xdf文件, summarise
是不同的:
内部summarise
将在默认情况下运行rxCube
或rxSummary
,它们会自动删除NA。 您不需要na.rm=TRUE
。
您不能总结一个表达式。 解决方案是运行摘要,然后计算表达式:
xdf %>%
group_by(*) %>%
summarise(expos=sum(expos), pd=sum(clms)) %>%
mutate(pd=pd/expos)
我还刚刚将dplyXdf更新为0.10.0 beta ,它增加了对HDFS / Spark和dplyr 0.7的支持以及一些实用的实用程序功能。 如果尚未使用它,则可能需要将其签出。 正式版本应在下一个MRS版本问世时进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.