最近一直对于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在处理向量方面的力量确实强大!
当然还有很多的用法有待挖掘,欢迎有兴趣的朋友有来交流,一起学习学习!
分享到:
相关推荐
1、CUME_DIST() OVER([partition_clause] order_by_clause) 返回该行在分组序列中的相对位置,返回值介于0到1之间。注意哟,如果order by的列是desc,则该分组内最大的行返回列值1,如果order by为asc,则该分组内...
'函数delpiccontent(str),该函数用来删除字段内容中的图片内容/代码。 '------------------------------------- '天枫ASP class v1.0鱼鱼修改版,集常用asp函数于一体 '天枫...
文章目录函数式编程高阶函数(Higher-order function)map/reducefilter用filter求素数exercisesorted-排序算法exercise返回函数函数作为返回值闭包exercise匿名函数erercise小结装饰器定义使用示例exercise小结偏...
数据分析常用函数全文共1页,当前为... 例子:=IFERROR(RANK(H12,$H$12:$H$3941),"") = =IFERROR(P12/H12,"") 16、指定值的排名 RANK( ) =rank(number,ref,[order]) (语法) =RANK(H12,$H$12:$H$3941) 数据分析常用函数
函数返回值是表 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 函数。PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序。...这些函数均可用于SELECT,WHERE、ORDER BY等子句中,例如下面的例子中就包含了TO_CHAR,UPPER,
1 函数是一种有零个或多个参数并且有一个返回值的程序。...这些函数均可用于SELECT,WHERE、ORDERBY等子句中,例如下面的例子中就包含了TO_CHAR,UPPER,SOUNDEX等单行函数。1213 SELECTename,TO_CH
高阶函数 高阶函数英文叫 Higher-...JavaScript 语言中内置了一些高阶函数,比如 Array.prototype.map,Array.prototype.filter 和 Array.prototype.reduce,它们接受一个函数作为参数,并应用这个函数到列表的每一
正在看的ORACLE教程是:OraclePL/SQL单行函数和组函数详解。 1 函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些...这些函数均可用于SELECT,WHERE、ORDER BY等子句中,例如
Oracle过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的主要...
1) 作为参数传给高阶函数(higher-order function ),如python中的built-in函数filter/map/reduce都是典型的高阶函数 2) 作为高阶函数的返回值(虽然此处的”值”实际上是个函数对象) 与命名函数(named function)...
MySQL中concat函数 使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自...
函数头如下: bool getPostOrder(const char* perOrder, const char* inOrder, char* postOrder); 返回值是一个布尔 代表是否有这样的二叉树 用法: char* perorder = "abdgcefh"; char* inorder = "dgbaechf" ...
知识点:(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 中,函数是一等公民,允许函数作为参数或者返回值传递。 得到了下面这个解法: function add() { var args =
这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示。 算法:先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后...
8.5 如果一个函数没有返回值,是否需要加入return语句? 8.6 怎样把数组作为参数传递给函数? 8.7 在程序退出main()函数之后,还有可能执行一部分代码吗? 8.8 用PASCAL修饰符说明的函数与普通C函数有什么...
10、SQL SERVER 中的编程语言就是_____________________________语言。 三、 判定题(10分) 1、在CREATE INDEX语句中,使用CLUSTERED来建立簇索引。( ) 2、可以在企业治理器中修改数据库的名称。( ) 3、...
最后需要调用函数System_Initiate 来完成初始化操作,这个函数返回值是一个bool 类型的变量,如果是true 那么表示初始化成功,如果是false 表示出错,这时候可以通 过System_GetErrorMessage 函数来获取错误消息: ...