R | 排列组合

最近发现了一个可以根据输入数据生成全部组合的一个函数expand.grid,在此分享.

Description

Create a data frame from all combinations of the supplied vectors or factors. See the description of the return value for precise details of the way this is done.

试着生成(1,2,3)和(4,5,6)的所有组合

>expand.grid(c(1,2,3),c(4,5,6))
  Var1 Var2
1    1    4
2    2    4
3    3    4
4    1    5
5    2    5
6    3    5
7    1    6
8    2    6
9    3    6

有了这种组合产生方式,我们可以进行多种数据操作,像简单的四则运算,求个概率之类的都是比较方便的。

> a$SUM <- a$Var1 + a$Var2
> a
  Var1 Var2 SUM
1    1    4   5
2    2    4   6
3    3    4   7
4    1    5   6
5    2    5   7
6    3    5   8
7    1    6   7
8    2    6   8
9    3    6   9

另外,字符的组合也是可以的。因为生成的是数据框,所以要避免字符串被转为因子

> expand.grid(c("a","b","c"),c("e","f","g"), stringsAsFactors = F)
  Var1 Var2
1    a    e
2    b    e
3    c    e
4    a    f
5    b    f
6    c    f
7    a    g
8    b    g
9    c    g

有人说过编程语言就是一门与计算机交流的语言,有过多年外语学习经验的我们也知道,充足的词汇量是进行外语沟通的基本条件。那么对于编程语言而已,函数即为词汇量。所以积累足够多的函数,对函数拥有举一反三的能力(类似于理解英语的词根),以及掌握函数之间的相互关联,对于学习编程语言来说都是极为重要的。

完。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 组合-问题:100个基因里面,任意选出两个配对有多少种情况? 方法1, 使用combn(x,n)x这里指100个基...
    Ternq8阅读 3,305评论 0赞 2
  • 第一部分Common Lisp介绍第1章 介绍一下Lisp你在学的时候觉得已经明白了,写的时候更加确信了解了,教别...
    geoeee阅读 3,342评论 5赞 8
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 10,040评论 0赞 13
  • 最近总是被一些感情上的东西困扰着,感觉自己想得太多,和别人共同的话题就越来越少了,学习的压力也大了,感觉自己变了,...
    大长阅读 525评论 0赞 0
  • 响响很少和我说她特种兵前男友的事情了,毕竟她现任成天的在我们面前晃来晃去,对他有些淡忘了。 响响和特种兵前男友两个...
    何时了q阅读 588评论 3赞 6

友情链接更多精彩内容