Это должно сработать:
data <- matrix(rbinom(40, 20, 0.5), 8, 8)
rownames(data) <- LETTERS[1:8]
m <- apply(data, 2, max)
wm <- apply(data, 2, which.max)
data[cbind(wm, 1:nrow(data))]
out <- data.frame(Cars = rownames(data),
Most_Simiar = rownames(data[wm,],),
Cosine_Similarity = m)
Вам нужно будет перекодировать 1
в 0
, поэтому сделайте что-то вроде этого:
data[which(data == 1, arr.ind = TRUE)] <- 0