【发布时间】:2012-06-20 08:57:23
【问题描述】:
我有一个空矩阵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"]
我怀疑我没有正确地进行数据框索引?有任何想法吗?谢谢。
【问题讨论】:
标签: r matrix indexing dataframe