library(OptimalCutpoints)
library(dplyr)
下面是測試數據:使用具有多個輸出(?非摘要FXN)與功能總結
set.seed(123)
df<-data.frame(label=rbinom(1000,size=1,prob=0.5),score=rnorm(1000),type=sample(c("A","B","C","D"),1000,replace=TRUE))
使用條件GROUP_BY的「類型」,並希望使用optimal.cutpoints總結從庫函數(OptimalCutpoints)
df%>%group_by(type)%>%summarize(Opt_cut=optimal.cutpoints(X = "score", status = "label", tag.healthy = 0, methods = "MaxSpSe",data=df[,1:2]))
我得到這個: Error: expecting a single value
我能得到這樣的解決方法,提取每一個「類型」,並分別運行optimal.cutpoints:
df_A<-df%>%filter(grepl("A",type))
opt.cut.df.A <- optimal.cutpoints(X = "score", status = "label", tag.healthy = 0, methods = "MaxSpSe", data = df_A)
從opt.cut.df.AI可以提取最佳截止像這樣:
opt.cut.df.A[1]$MaxSpSe$Global$optimal.cutoff$cutoff
但是,這絕對不是最好的方式。與大量的「類型」 除非我錯過了一些東西,看起來像總結只會使用一個輸出函數。
該函數輸出一個嵌套列表,而'summarize'不期待那個。你只想要單一切入點嗎? –
嗨皮埃爾,在這種情況下是的......但我的一般問題是如何總結在dplyr中輸出值大於1的函數組。我認爲下面Psidom的應用拆分解決方案效果很好!在這種情況下,dplyr可能不是最好的方法。 – thisisrg
我用'data.table'的速度非常快。我嘗試過'dplyr',但找不到方法 –