У меня есть этот кадр данных в r (ссылка) (примеры строк и столбцы ниже)
FocalID Mother Adelaide Asimov Austen Brazzaville Lusaka Kinshasa
Adelaide HalfEar 0 0.0380 0.0417 0.0366 0.0278 0.0385
Asimov Lusaka 0.0380 0 0.0845 0.0357 0.169 0.0641
Austen Kinshasa 0.0417 0.0845 0 0.0526 0.0952 0.0411
Brazzaville NA 0.0366 0.0357 0.0526 0 0.0395 0.0488
Я хотел бы добавить новую переменную df$cor, в которой значение в каждой строке является результатом корреляции. Корреляция должна быть между двумя векторами: (1) столбцом, имя столбца которого соответствует значению переменной df$FocalID в этой строке, и (2) столбцом, имя столбца которого соответствует значению переменной df$Mother в этой строке. .
Если вектор, соответствующий столбцу, совпадающему с именем матери, отсутствует (либо потому, что мать неизвестна (NA в df$Mother), либо отсутствует в colnames), корреляция должна дать NA.
Я пробовал следующий код:
df$cor <- cor(df[, colnames(df) %in% df$FocalID], df[, colnames(df) %in% df$Mother])
Однако результат не кажется правильным. Есть идеи?