library(OptimalCutpoints)
library(dplyr)
ist hier ein Testdaten:die Funktion mit mehreren Ausgängen (? Nicht-Zusammenfassung fxn) Verwendung mit zusammenzufassen
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))
der ‚Typ‘ mit group_by Gruppiert und wollte die optimal.cutpoints zusammenzufassen mit Funktion aus der Bibliothek (OptimalCutpoints)
df%>%group_by(type)%>%summarize(Opt_cut=optimal.cutpoints(X = "score", status = "label", tag.healthy = 0, methods = "MaxSpSe",data=df[,1:2]))
ich habe dies: Error: expecting a single value
Ich könnte eine Abhilfe wie diese erhalten, jeden "Typ" Extrahieren und optimal.cutpoints separat ausgeführt wird:
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)
Von opt.cut.df.AI die optimale Cutoff wie so extrahieren:
opt.cut.df.A[1]$MaxSpSe$Global$optimal.cutoff$cutoff
Aber das ist definitiv nicht der beste Weg esp. mit großen # von "Typen" Wenn ich etwas nicht verpasst habe, sieht aus wie zusammenfassen funktioniert nur mit einer einzigen Ausgabefunktion.
Die Funktion eine verschachtelte Liste ausgibt, während 'summarize' nicht erwartet wird. Willst du nur den Single-Cut-Punkt? –
Hallo Pierre, In diesem Fall ja ... aber meine allgemeine Frage ist, wie man Gruppen mit Funktionen zusammenfasst, die in dplyr> 1 Wert ausgegeben haben. Ich denke die Anwendung Split-Lösung von Psidom unten funktioniert super! Vielleicht ist dplyr nicht der beste Ansatz in diesem Fall. – thisisrg
Ich benutzte 'data.table' es war ziemlich schnell. Ich habe 'dplyr' probiert, konnte aber keinen Weg finden, –