Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于组合的列和行名称从向量填充R矩阵_R_Matrix - Fatal编程技术网

基于组合的列和行名称从向量填充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), "_"))))