从包含元素1到20的向量生成两个3X4矩阵的数组。按列填写
- 为数组添加合适的行名、列名和矩阵名。
- 使用apply函数,查找数组中列元素的和。 在一行代码中,找到数组中每个矩阵的平均值。结果应该是两个数字的向量,每个矩阵一个。
以上就是我想解决的问题。我尝试的是下面的代码
y <- array(1:20, dim = c(3,4,2))
print(y)
它似乎是有效的。我怎么定义按列填充呢?此外,如何使用单个向量添加名称?通常应该至少有两个这样的向量
result <- array(c(vector1, vector2), dim = c(3,3,2))
这是R的介绍,OP应该阅读R的介绍,文件R- Introduction .pdf,每个R的安装都有。
为了按列填充矩阵,没有什么特别要做的,R已经按列主顺序填充了。
注意3*4*2 == 24
,因为只有1:20
的值被接受,所以最后4个值被回收。
y <- array(1:20, dim = c(3,4,2))
dimnames(y) <- list(paste("row", 1:3, sep = "_"),
paste("col", 1:4, sep = "_"),
paste("matrix", 1:2, sep = "_"))
y
#, , matrix_1
#
# col_1 col_2 col_3 col_4
#row_1 1 4 7 10
#row_2 2 5 8 11
#row_3 3 6 9 12
#
#, , matrix_2
#
# col_1 col_2 col_3 col_4
#row_1 13 16 19 2
#row_2 14 17 20 3
#row_3 15 18 1 4
现在列按三维求和
apply(y, 3, colSums)
# matrix_1 matrix_2
#col_1 6 42
#col_2 15 51
#col_3 24 40
#col_4 33 9
和各矩阵的均值。
apply(y, 3, mean)
#matrix_1 matrix_2
# 6.50000 11.83333