Ich bin gerade dabei meine GoF-Maß-Funktion für nominal zu erweitern. Gelgentlich habe ich solche Zielvariablen.
Üblicher Weise mache ich mehrere sich konkurrenzierende Schätzer und fasse deren Prediktions in einer Matrix zusammen, jede Spalte einmal Prediktions. Bei einer nominal skalierten Zielvariable, muss ich also y und yest (hier beide nominal) miteinander vergleichen. Manchmal ist yest ein Vektor (bei einem Schätzer) und manchmal eine Matrix (bei mehreren Schätzern).
Nominale Variablen werden in R üblicher Weise als Factor dargestellt. R Matrizen kennen - aus welchen Gründen auch immer - aber keine R Factors. Die werden in einer Matrize einfach in Ints umgewandelt, so dass ich keinen generalisierten Code für yest als Vektor bzw. Matrix hinbekomme. Und genau hier liegt das Problem.
Wenn ich y nach Int umwandele, funktioniert der Vektor-Matrix vergleich, aber Int-Vektor - Vektor Vergleich funktioniert nicht.
Habe mal versucht es einfach darzustellen. Ich suche einen möglichst eleganten datentypunabhängigen Prozessfluss für folgendes:
Code: Alles auswählen
a= as.factor(c("a","b","c","a","b","c","b","b","b"))
b= as.factor(c("a","b","c","b","b","c","a","c","b"))
# Ok
a == b
# Problem, es entsteht eine Matrix c aus Ints
c= cbind(a,b)
c == a
# Dirty Workaround
c == as.integer(a)
# Dirty Workaround funktioniert aber nicht wenn c nur ein Vektor ist
c= b
c == as.integer(a)