0

我正在尝试将特定函数的水平输出转换为垂直输出,我试图用“cat”函数找出答案,但找不到这样做的方法。我关心的功能如下:

 context <- function (a,b,c)
 {
 U=matrix(0, nrow = c, ncol = c)
 t = 0.4
 m = 0.2
 for (i in 1:c)
 { 
 U[i] = t*a + b/i - 0.224
 }
 cat(U)
 }
 context(2,3,7)

我得到的输出是这样的:

 3.576 2.076 1.576 1.326 1.176 1.076 1.004571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

但是,我不知道我是否可以通过操纵函数本身以垂直方式进行此输出。如果我能得到这方面的帮助,我将不胜感激。

非常感谢您!

4

2 回答 2

2

我不明白你为什么要创建所有这些零。

也许你想返回一个矩阵?

context <- function (a,b,c)
{
  t = 0.4
  m = 0.2
  U = t*a + b/seq_len(c) - 0.224
  as.matrix(U)
}

context(2,3,7)

#         [,1]
#[1,] 3.576000
#[2,] 2.076000
#[3,] 1.576000
#[4,] 1.326000
#[5,] 1.176000
#[6,] 1.076000
#[7,] 1.004571
于 2014-04-18T18:54:53.683 回答
0

t(data)可能是更好的解决方案。

更多详情请查看:https ://www.r-statistics.com/tag/transpose/ 。

于 2018-03-15T15:16:22.750 回答