dim(m-6ren">
gpt4 book ai didi

R将矩阵单元格粘贴在一起

转载 作者:行者123 更新时间:2023-12-04 12:05:08 26 4
gpt4 key购买 nike

我想将矩阵的单元格粘贴在一起,但是当我执行 paste() 时,它返回一个向量。 R中是否有相同的直接函数?

mat <- matrix(1:4,2,2)
paste(mat,mat,sep=",")

我希望输出为
     [,1] [,2]
[1,] 1,1 2,2
[2,] 3,3 4,4

最佳答案

R 中的矩阵只是一个具有指定维度的属性的向量。当您将它们 paste 在一起时,您只是丢失了维度属性。

所以,

matrix(paste(mat,mat,sep=","),2,2)

或者,例如
mat1 <- paste(mat,mat,sep=",")
> mat1
[1] "1,1" "2,2" "3,3" "4,4"
> dim(mat1) <- c(2,2)
> mat1
[,1] [,2]
[1,] "1,1" "3,3"
[2,] "2,2" "4,4"

下面只是一个示例,说明如何编写一个简单的函数来执行此操作:
paste_matrix <- function(...,sep = " ",collapse = NULL){
n <- max(sapply(list(...),nrow))
p <- max(sapply(list(...),ncol))

matrix(paste(...,sep = sep,collapse = collapse),n,p)
}

...但是您想要的特定函数将取决于您希望它如何处理两个以上的矩阵、不同维度的矩阵或可能完全 Not Acceptable 输入(随机对象、 NULL 等)。

这个特定的函数循环使用向量并输出一个矩阵,其维度与各种输入中的最大值相匹配。

关于R将矩阵单元格粘贴在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35588962/

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