2017-05-05 134 views
0

我知道这是一个R函数,它允许你转置任何矩阵,但想知道如何去转置一个矩阵而不使用它(即,使自己的函数)如何转置一个矩阵,而不使用r中的t()函数

我该如何将它写成我自己的函数?

transpose <- function(M) 

M <- matrix(data, nrow=(), ncol=(), byrow = TRUE) 
output <- matrix(data, nrow=ncol, ncol=nrow, brow = FALSE) 

请注意我刚刚开始使用r所以请不要苛刻。

+3

你知道如何制作一般的功能吗?先学习一个基本的功能,然后思考如何使用铅笔和纸张转置矩阵,然后尝试将它写入R,然后如果卡住了,请回到此处并发布您的尝试。 – Brandin

+0

我的学生的一般建议是首先考虑算法以及如何实现它。开始编码。当你陷入困境时,搜索互联网,当你耗尽所有选项(可能在搜索后的几天后),在stackoverflow上发布一个问题。 –

+1

这样做的一种方法是'转置< - 函数(x)矩阵(x,ncol(x),nrow(x),byrow = TRUE)' – Miff

回答

4

转置矩阵只是将其列转换为行。 这可以用下面的代码来完成:

transpose <- function(M) sapply(1:nrow(M), function(i) M[i,]) 
-1

可能是最糟糕的主意,但至少给人的转置矩阵是:

  • 建一个矩阵M2
  • Assing到M2[i,j]值的M[j,i]

代码:

M2 <- M 
    for (i in 1:nrow(M2)){ 
     for (j in 1:ncol(M2)){ 
      M2[i,j] <- M[j,i] 
     } 
    } 
+0

这并不回答这个问题。它只是重申它。需要查看代码。 –

+0

它不回答这个问题?我认为遵循这些步骤的函数会根据输入生成一个traspose矩阵。 – R18

+0

可能。但是,SO的全部要点是回答WITH CODE的问题。 –