`
googya
  • 浏览: 140735 次
  • 性别: Icon_minigender_1
  • 来自: 汉川
社区版块
存档分类
最新评论

R中order函数的返回值的含义

    博客分类:
  • R
阅读更多
    最近一直对于R中的order的用法不理解,不知道其返回的什么东西。今天稍微研究了一下,多天的困惑都消除了。备忘,记之!
    假设有如下向量:

xx    4    3    2    1    2    3    4    5

order(xx)返回的是:

[1] 4 3 5 2 6 1 7 8

xx[c(4,3,5,2,6,1,7,8)]
[1] 1 2 2 3 3 4 4 5


返回的这个向量刚好是xx向量中各数的原始的位置,比如xx[8]就是5,5就是第8个!


    理解了返回值的含义之后,更复杂一点的排序就可以理解了。假设有如下矩阵:

mimi
   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
xx    4    3    2    1    2    3    4    5
qw    1    2    3    4    5    6    7    8
gg    9   10   11   12   13   14   15   16


要根据第一列进行排序,可以这样做:
mimi(order(mimi[,1]),),得到如下结果:


   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
qw    1    2    3    4    5    6    7    8
xx    4    3    2    1    2    3    4    5
gg    9   10   11   12   13   14   15   16

是不是很神奇?



当然也可以对每一行的向量进行排序,但是处理方式与列的不同,要用到apply这个函数(人家说apply本质上就是一个循环)。中间的参数:1代表行,2代表列,c(1:2)话,至少要用到3维以上的矩阵,可以使用?apply查看该函数的用法。

> t(apply(mimi,1,sort))
   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
xx    1    2    2    3    3    4    4    5
qw    1    2    3    4    5    6    7    8
gg    9   10   11   12   13   14   15   16

是不是很好玩?
R在处理向量方面的力量确实强大!

当然还有很多的用法有待挖掘,欢迎有兴趣的朋友有来交流,一起学习学习!


0
0
分享到:
评论
1 楼 googya 2010-09-07  
现在明白了,其实就是矩阵的秩

相关推荐

    oracle函数介绍(7) 非著名函数之分析函数.doc

    1、CUME_DIST() OVER([partition_clause] order_by_clause) 返回该行在分组序列中的相对位置,返回值介于0到1之间。注意哟,如果order by的列是desc,则该分组内最大的行返回列值1,如果order by为asc,则该分组内...

    [asp dll 函数 web 组件 源码]鱼鱼asp函数组件(fishasp20090218.dll)

    '函数delpiccontent(str),该函数用来删除字段内容中的图片内容/代码。 '------------------------------------- '天枫ASP class v1.0鱼鱼修改版,集常用asp函数于一体 '天枫...

    python学习笔记-函数式编程-20200310

    文章目录函数式编程高阶函数(Higher-order function)map/reducefilter用filter求素数exercisesorted-排序算法exercise返回函数函数作为返回值闭包exercise匿名函数erercise小结装饰器定义使用示例exercise小结偏...

    数据分析常用函数.docx

    数据分析常用函数全文共1页,当前为... 例子:=IFERROR(RANK(H12,$H$12:$H$3941),"") = =IFERROR(P12/H12,"") 16、指定值的排名 RANK( ) =rank(number,ref,[order]) (语法) =RANK(H12,$H$12:$H$3941) 数据分析常用函数

    sqlserver自定义函数

    函数返回值是表 create table test(id int primary key,name char(10)) insert into test values(1,'test1') insert into test values(2,'test2') insert into test values(3,'test3') insert into test ...

    oracle 函数

    正在看的ORACLE教程是:oracle 函数。PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序。...这些函数均可用于SELECT,WHERE、ORDER BY等子句中,例如下面的例子中就包含了TO_CHAR,UPPER,

    Oracle中PL/SQL单行函数和组函数详解数据库开发技术

    1 函数是一种有零个或多个参数并且有一个返回值的程序。...这些函数均可用于SELECT,WHERE、ORDERBY等子句中,例如下面的例子中就包含了TO_CHAR,UPPER,SOUNDEX等单行函数。1213 SELECTename,TO_CH

    深入学习JavaScript 高阶函数

    高阶函数 高阶函数英文叫 Higher-...JavaScript 语言中内置了一些高阶函数,比如 Array.prototype.map,Array.prototype.filter 和 Array.prototype.reduce,它们接受一个函数作为参数,并应用这个函数到列表的每一

    OraclePL/SQL单行函数和组函数详解

    正在看的ORACLE教程是:OraclePL/SQL单行函数和组函数详解。 1 函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些...这些函数均可用于SELECT,WHERE、ORDER BY等子句中,例如

    Oracle过程与函数的区别分析

    Oracle过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的主要...

    Python的几个高级语法概念浅析(lambda表达式闭包装饰器)

    1) 作为参数传给高阶函数(higher-order function ),如python中的built-in函数filter/map/reduce都是典型的高阶函数 2) 作为高阶函数的返回值(虽然此处的”值”实际上是个函数对象) 与命名函数(named function)...

    mysql字符串连接函数

    MySQL中concat函数 使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自...

    给出先序遍历和中序遍历,求二叉树后序遍历

    函数头如下: bool getPostOrder(const char* perOrder, const char* inOrder, char* postOrder); 返回值是一个布尔 代表是否有这样的二叉树 用法: char* perorder = "abdgcefh"; char* inorder = "dgbaechf" ...

    goodsSelect_CaseOfReact:用react写的一个电商网站商品选择的小案例

    知识点:(1)组件(2)无状态函数式组件(不用render)export default function List (props){...return()}(3)props(4)数组的some方法selected.some( elt => elt.order === order )返回值是布尔值2.组件拆分:根据UI,...

    二叉树建立,先序中序后续遍历

    //构造函数和析构函数 BiTreeNode():leftChild(NULL), rightChild(NULL){} BiTreeNode(char item, BiTreeNode *left = NULL, BiTreeNode *right = NULL): data(item), leftChild(left), rightChild(right){} ...

    一道面试题引发的对javascript类型转换的思考

    最近群里有人发了下面这题: 实现一个函数,运算结果可以满足如下预期结果: ...在 javascript 中,函数是一等公民,允许函数作为参数或者返回值传递。 得到了下面这个解法: function add() { var args =

    用C编写班级成绩管理系统

    这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示。 算法:先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后...

    C 语言编程常见问题解答.chm

    8.5 如果一个函数没有返回值,是否需要加入return语句? 8.6 怎样把数组作为参数传递给函数? 8.7 在程序退出main()函数之后,还有可能执行一部分代码吗? 8.8 用PASCAL修饰符说明的函数与普通C函数有什么...

    sql试 题答案和试题

    10、SQL SERVER 中的编程语言就是_____________________________语言。 三、 判定题(10分) 1、在CREATE INDEX语句中,使用CLUSTERED来建立簇索引。( ) 2、可以在企业治理器中修改数据库的名称。( ) 3、...

    HGE_系列教材(1-9)

    最后需要调用函数System_Initiate 来完成初始化操作,这个函数返回值是一个bool 类型的变量,如果是true 那么表示初始化成功,如果是false 表示出错,这时候可以通 过System_GetErrorMessage 函数来获取错误消息: ...

Global site tag (gtag.js) - Google Analytics