Я пытаюсь подсчитать количество попарных различий между длинным списком последовательностей и вернуть его в матричную форму. Это игрушечный пример того, что я хочу сделать.
library(MiscPsycho)
b <- c("-BC", "ACB", "---") # Toy example of sequences
workb <- expand.grid(b,b)
new <- c(1:9)
# Need to get rid of this for loop somehow
for (i in 1:9) {
new[i] <- stringMatch(workb[i,1], workb[i,2], normalize="NO")
}
workb <- cbind(workb, new)
newmat <- reShape(workb$new, id=workb$Var1, colvar=workb$Var2)
a <- c("Subject1", "Subject2", "Subject3") #Relating it back to the subject ID
colnames(newmat) <- a
rownames(newmat) <- a
newmat
Я не очень хорошо знаком с использованием функций применения, но я хотел бы использовать его, чтобы иметь возможность заменить цикл for, который, вероятно, будет медленным, учитывая, что у меня большое количество последовательностей. (Функция stringMatch взята из MiscPsycho). Пожалуйста, подскажите, как сделать его более эффективным!
Большое спасибо!