基于组合的列和行名称从向量填充R矩阵
我试图用向量中的值填充矩阵,其中每个值的名称是矩阵的列和行名称的组合基于组合的列和行名称从向量填充R矩阵,r,matrix,R,Matrix,我试图用向量中的值填充矩阵,其中每个值的名称是矩阵的列和行名称的组合 set.seed(1001) mat <- matrix(nrow = 2, ncol = 3, dimnames = list(c("one", "two"), c("house", "tree", "flower"))) vec <- sample.int(10, 5) names(vec) <- c(&q
set.seed(1001)
mat <- matrix(nrow = 2, ncol = 3, dimnames = list(c("one", "two"), c("house", "tree", "flower")))
vec <- sample.int(10, 5)
names(vec) <- c("one_house", "one_flower", "two_tree", "two_house", "one_tree")
非常感谢您的帮助。我们可以将向量的
名称拆分为\uu
,并根据表中的行/列名属性进行赋值
mat[do.call(rbind, strsplit(names(vec), "_"))] <- vec
或者,如果我们没有要替换的数据集,我们可以构造一个data.frame
,并使用xtabs
来重塑数据
xtabs(vec ~ V1 + V2, as.data.frame(do.call(rbind, strsplit(names(vec), "_"))))
我从你展示的种子中得到了不同的价值非常感谢你的快速回复。真是一种享受!
mat
# house tree flower
#one 7 9 3
#two 8 10 NA
xtabs(vec ~ V1 + V2, as.data.frame(do.call(rbind, strsplit(names(vec), "_"))))