voyages =(
VIC0016,
VIC0016,
VIC0016,
VIC0016,
VIC0016,
VIC0016,
Truck,
VIC0016,
VIC0016,
VIC0016,
JUL0983,
BB11356,
VIC0022,
VIC0022,
ISK1981,
ISK1981,
ISK1981,
ISK1981,
ISK1981,
ISK1981,
ISK1981,
ISK1981,
ISK1981,
ISK1981,
ISK1981,
ISK1981)
clusters = (5,
5,
5,
4,
4,
4,
1,
3,
4,
3,
5,
2,
4,
5,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6)
>calculate.confusion <- function(voyages, clusters)
{
d <- data.frame(voyages, clusters)
td <- as.data.frame(table(d))
# convert the raw counts into percentage of each voyage number
pc <- matrix(ncol=max(clusters),nrow=0)
for (i in 1:11) # 11 different voyage numbers
{
total <- sum(td[td$voyages==td$voyages[i],3])
#,3 is the third column, showing the frequencies
pc <- rbind(pc, td[td$voyages==td$voyages[i],3]/total)
}
rownames(pc) <- td[1:11,1]
colnames(pc)<-1:11
return(pc)
}
Имея указанный выше фрейм данных (числа в процентах), как я могу заменить имена столбцов [1:11] на имена строк таким образом, чтобы:
- в строке, столбец с наибольшим процентом в этой строке назван в честь этой строки
- каждое имя строки используется один раз
Надеюсь, кто-нибудь может мне помочь.