gpt4 book ai didi

r - 如何在 R 中将矩阵分成更小的矩阵?

转载 作者:行者123 更新时间:2023-12-03 15:08:22 25 4
gpt4 key购买 nike

我有以下矩阵

2    4    1
6 32 1
4 2 1
5 3 2
4 2 2
我想根据第三列制作以下两个矩阵
第一的
2    4
6 32
4 2
第二
5    3
4 2
我能想出的最好的,但我收到一个错误

x <- cbind(mat[,1], mat[,2]) if mat[,3]=1

y <- cbind(mat[,1], mat[,2]) if mat[,3]=2

最佳答案

mat是你的矩阵:

mat <- matrix(1:15,ncol=3)
mat[,3] <- c(1,1,1,2,2)
> mat
[,1] [,2] [,3]
[1,] 1 6 1
[2,] 2 7 1
[3,] 3 8 1
[4,] 4 9 2
[5,] 5 10 2

那么你可以使用 split :
> lapply( split( mat[,1:2], mat[,3] ), matrix, ncol=2)
$`1`
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8

$`2`
[,1] [,2]
[1,] 4 9
[2,] 5 10
lapplymatrix是必要的,因为 split 会删除使向量成为矩阵的属性,因此您需要重新添加它们。

关于r - 如何在 R 中将矩阵分成更小的矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13060000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com