Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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 - Fatal编程技术网

R 列平均值矩阵的生成

R 列平均值矩阵的生成,r,R,根据我的数据,我有一个列均值向量,如下所示: 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 我尝试了很多使用rep,但是我没能很好地将它以这种格式

根据我的数据,我有一个列均值向量,如下所示:

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 

我尝试了很多使用
rep
,但是我没能很好地将它以这种格式放到矩阵中。最简便的方法是什么?

我们可以使用
dim来分配尺寸,这里有一个使用
rep()的解决方案


cmean您可以将
byrow
参数用于
matrix
。例如:

> x <- 1:4
> matrix(x, 4, 4, TRUE)
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    1    2    3    4
[3,]    1    2    3    4
[4,]    1    2    3    4

如果您从data.frame开始,并希望将每列的所有行转换为列的平均值,您可以使用
df[]IMHO这是最简单的解决方案,但您应该使用TRUE而不是T,因为R中没有任何内容阻止此重新定义:
T如果名称被删除,您最好使用
rep.int()
,以提高速度。
`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
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)]
library(dplyr)
d2 %>%
    mutate_each(funs(mean))
cmean <- c(v1=50.99013605,  v2=13.27823129, v3=67.83265306, v4=25.88299320)
M <- 5 # number of rows
matrix(rep(cmean, each=M), M)
#> matrix(rep(cmean, each=M), M)
#         [,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
#[5,] 50.99014 13.27823 67.83265 25.88299
x <- matrix(rep(cmean, each=M), M)
colnames(x) <- names(cmean)
> x <- 1:4
> matrix(x, 4, 4, TRUE)
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    1    2    3    4
[3,]    1    2    3    4
[4,]    1    2    3    4
> matrix(x, 4, 4)
     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    2    2    2    2
[3,]    3    3    3    3
[4,]    4    4    4    4