Ich versuche, den maximalen Wert jeder Spalte in einer Kreuztabelle in R.Wie wird der Höchstwert jeder Spalte in einer Kontingenztabelle hervorgehoben?
Was ich versuchte, so weit
tbl <- as.matrix(table(c(iris[5], data.frame(Petal.Width = cut(iris$Petal.Width, 3)))))
pos <- cbind(apply(tbl, 2, which.max), 1:dim(tbl)[2])
tbl <- addmargins(tbl)
# First attempt
tbl2 <- tbl
tbl2[pos] <- -tbl2[pos]
tbl2
## Petal.Width
## Species (0.0976,0.9] (0.9,1.7] (1.7,2.5] Sum
## setosa -50 0 0 50
## versicolor 0 -49 1 50
## virginica 0 5 -45 50
## Sum 50 54 46 150
# Second attempt
tbl2 <- tbl
tbl[pos] <- paste("*", tbl[pos])
print(tbl, justify = "right")
## Petal.Width
## Species (0.0976,0.9] (0.9,1.7] (1.7,2.5] Sum
## setosa * 50 0 0 50
## versicolor 0 * 49 1 50
## virginica 0 5 * 45 50
## Sum 50 54 46 150
Der erste Versuch hervorzuheben funktionieren würde, wenn ich eine Möglichkeit gefunden Ändern Sie die "-"
zu "* "
, aber behalten Sie den numerischen Datentyp bei.
Der zweite Versuch würde funktionieren, wenn ich eine Möglichkeit finden könnte, die Werte (die jetzt Zeichenketten sind) mit den Spaltennamen auszurichten.
Meine Frage
Können Sie mir eine Lösung geben, arbeiten zumindest einer dieser Versuche zu machen - oder eine ganz andere Lösung, mit der ich den maximalen Wert jeder Spalte in einer Kreuztabelle hervorheben?
Vielen Dank