我从我的数据中得到了一个列均值的向量,如下所示:
cmean <- c(v1=50.99013605, v2=13.27823129, v3=67.83265306, v4=25.88299320)
v1 v2 v3 v4
50.99013605 13.27823129 67.83265306 25.88299320
然后,我想用它构成一个矩阵,其中所有列都只是该列均值的重复项。因此,我希望它看起来像这样:
50.99013605 13.27823129 67.83265306 25.88299320
50.99013605 13.27823129 67.83265306 25.88299320
50.99013605 13.27823129 67.83265306 25.88299320
50.99013605 13.27823129 67.83265306 25.88299320
我使用尝试了很多rep
,但未能以这种格式很好地将其放入矩阵中。最方便的方法是什么?
在使用dim<-
复制了“ v1”之后,我们可以为分配尺寸col
。
`dim<-`(v1[col(d2)], dim(d2))
# [,1] [,2] [,3] [,4]
#[1,] 50.99014 13.27823 67.83265 25.88299
#[2,] 50.99014 13.27823 67.83265 25.88299
#[3,] 50.99014 13.27823 67.83265 25.88299
#[4,] 50.99014 13.27823 67.83265 25.88299
或使用 replicate
do.call(rbind, replicate(nrow(d2), v1, simplify=FALSE))
# v1 v2 v3 v4
#[1,] 50.99014 13.27823 67.83265 25.88299
#[2,] 50.99014 13.27823 67.83265 25.88299
#[3,] 50.99014 13.27823 67.83265 25.88299
#[4,] 50.99014 13.27823 67.83265 25.88299
或一个紧凑的选择是
(d2/d2)*v1[col(d2)]
如果我们正在使用 dplyr
library(dplyr)
d2 %>%
mutate_each(funs(mean))
其中“ d2”是初始数据集,“ v1”是其列的意思。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句