This is a small example:
a <- c("a", "b", "f", "c", "e")
b <- c("a", "c", "e", "d", "b")
p <- matrix(1:25, nrow = 5, dimnames = list(a, b))
p <- as.data.frame(p)
#data.frame would be like that
a c e d b
a 1 6 11 16 21
b 2 7 12 17 22
f 3 8 13 18 23
c 4 9 14 19 24
e 5 10 15 20 25
Вывод, что я хочу:
score
a 1
b 22
c 9
e 15
Это код, который я написал:
L <- rownames(p)
output <- NULL
t <- 1
for (i in L) {
tar_column <- p[i]
score <- tar_column[t, ]
tar_score <- matrix(score, nrow = 1, dimnames = list(i, "score"))
output <- rbind(output, tar_score)
t <- t+1
}
Вывод, который я получил:
score
a 1
b 22
Error in `[.data.frame`(p, i) : undefined columns selected
Проблема в том, что имя столбца и имя строки не совпадают идеально.Я думаю, что оператор if может помочь пропустить переменную, когда она не может быть сопоставлена с именем столбца.Может ли кто-нибудь помочь мне решить эту проблему?