Заполнение матрицы с использованием кадра данных в R

У меня пустая матрицаm:

m <- matrix(0, nrow = 4, ncol = 2, byrow = TRUE,
            dimnames = list(c("sp1", "sp2", "sp3", "sp4"),
                            c("x", "y")))

И нужно заполнить матрицу с использованием фрейма данных d

d <- data.frame(site = c("x", "y", "u", "v"), 
                species = c("sp1", "sp1", "sp1", "sp1"), 
                freq = c(0.2, 0.3, 0.5, 0.1))

так что еслиrowname(m) равноd[, "species"] а такжеm[, "x"] равноd[, "site"] затемd[, "freq"] введено в правильном месте в матрице m, то есть возвращено:

m <- matrix(c(0.2, 0, 0, 0, 0, 0, 0, 0), nrow = 4, ncol = 2, byrow = TRUE, 
            dimnames = list(c("sp1", "sp2", "sp3", "sp4"),
                            c("x", "y")))

Я пытался:

m[d[, c("species", "x")]] <- d[, "freq"]

Я подозреваю, что не делаю индексацию фрейма данных должным образом? Есть идеи? Благодарю.

Ответы на вопрос(2)

Ваш ответ на вопрос