当前位置:  开发笔记 > 编程语言 > 正文

Double Sapply嵌套功能

如何解决《DoubleSapply嵌套功能》经验,为你挑选了1个好方法。

我是R的新手.有人可以告诉我以下代码中发生了什么.

a<- 1:10
b<-sapply(a, function(x) sapply(a,function(y) x+y))
b

为什么b看起来像这样:

  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    2    3    4    5    6    7    8    9   10    11
 [2,]    3    4    5    6    7    8    9   10   11    12
 [3,]    4    5    6    7    8    9   10   11   12    13
 [4,]    5    6    7    8    9   10   11   12   13    14
 [5,]    6    7    8    9   10   11   12   13   14    15
 [6,]    7    8    9   10   11   12   13   14   15    16
 [7,]    8    9   10   11   12   13   14   15   16    17
 [8,]    9   10   11   12   13   14   15   16   17    18
 [9,]   10   11   12   13   14   15   16   17   18    19
[10,]   11   12   13   14   15   16   17   18   19    20

42-.. 6

当两个版本的a-vector 的各个项到达内部表达式时,它们覆盖了前10个正整数的可能配对的范围.它与两个嵌套的for循环基本相同.sapply如果可能,该函数将返回矩阵.内部sapply返回一系列长度为10的向量,外部sapply将向量组合成矩阵.您也可以使用以下命令返回相同的结果:

 outer( 1:10, 1:10, "+")

我不同意Scriven这种形式是"胡说八道".如果有人使用该sum功能,那么outer策略就不会成功.该sum函数不是"向量化的"(至少在R用户使用该函数的方式中),因为它通常不会返回与其参数长度相同的值.尽管如此,双重sapply方法会给出与sum(x,y)内在表达相同的结果,但是outer(a,a,'sum')会失败.



1> 42-..:

当两个版本的a-vector 的各个项到达内部表达式时,它们覆盖了前10个正整数的可能配对的范围.它与两个嵌套的for循环基本相同.sapply如果可能,该函数将返回矩阵.内部sapply返回一系列长度为10的向量,外部sapply将向量组合成矩阵.您也可以使用以下命令返回相同的结果:

 outer( 1:10, 1:10, "+")

我不同意Scriven这种形式是"胡说八道".如果有人使用该sum功能,那么outer策略就不会成功.该sum函数不是"向量化的"(至少在R用户使用该函数的方式中),因为它通常不会返回与其参数长度相同的值.尽管如此,双重sapply方法会给出与sum(x,y)内在表达相同的结果,但是outer(a,a,'sum')会失败.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有