Rellenando una matriz usando un marco de datos en R

Tengo una matriz vacíam:

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

Y hay que rellenar la matriz utilizando el marco de datos 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))

de modo que sirowname(m) es igual ad[, "species"] ym[, "x"] es igual a lad[, "site"] entoncesd[, "freq"] ingresado en el lugar correcto en la matriz m, es decir, devolviendo:

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")))

Yo he tratado:

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

Sospecho que no estoy haciendo la indexación de marco de datos correctamente? ¿Algunas ideas? Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta