与R语言纠缠了一个星期,从快速上手的暗暗得意,到之后某些细节的纠结烦躁,过山车式体验中,我逐渐才认识了真实的R语言。

期间遇到两个很烦恼的问题,一个是让人烦躁抓狂,另一个是无意发现的重大错误。

1.      令人抓狂的rownames

若数据矩阵datamatrix如图1,无列名和行名及表头。若c1~c4分别为colnames,而r1~r5为rownames,表头为A。

图1:datamatrix

如何添加c1~c4?r1~r5?

coln = c(”c1”,”c2”,”c3”,”c4”)

rown = c(”r1”,”r2”,”r3”,”r4”,”r5”)

colnames(datamatrix) = coln

rownames(datamatrix) = rown

如何添加表头A?

colnames(datamatrix) = c(“A”,”c1”,”c2”,”c3”,”c4”)

上述命令会直接报错,列数不匹配。

colnames(datamatrix)[1] = “A”

上命令会让矩阵变成​如图2所示

图2:datamatrix

究其本质,都是因为colnames()函数默认调用的都是真实数据上(x1~x4)的列名,而不认识行名上(r1~r5)的列名。

正确添加表头命令为:

datamatrix= cbind(rownames(datamatrix),datamatrix)#将行名加入矩阵

rownames(datamatrix)[1]= “A”

实现后矩阵如图3,

图3:datamatrix

另外

​read.table或wirte.table中也有row.names和col.names条件格式。与上rownames和colnames不仅书写上有区别,意义上也有。row.names用于指定行名。数值为k时,则将第k列设置为列名,并将其从数据矩阵中移除。而write.table中row.names=F将矩阵的行名剔除后写进table.

2.      子集选取("numeric"和"character"之争)

genename =

CRHBP,….

mode(genename)  =

“numeric”

m1 为如下矩阵

图4:m1

mode(m1)  =

"numeric"​

若要在m1中选取genename对应的id所在行的子集,命令应该为:

m1[genename,]

​但结果很诡异,返回的并不是id对应为CRHBP所在行,返回却是CRHR1所在行

要想返回所选的行,必须先将genename转换为character类型,才是准确的。

genename <- as.character(genename)

m1[genename,]

此时,结果才​为所求行。

与R纠缠的两件事——rownames和子集--转载的更多相关文章

  1. 再访贺利坚(一):IT毕业生去培训机构,这件事很正常(转载)

    转载自: 再访贺利坚(一):IT毕业生去培训机构,这件事很正常 导语:与烟台大学计算机学院贺利坚副教授相识,还是在2012年年底,那个时候我在为社区之星专访栏目寻找合适的采访人.在社区运营的推荐下,我 ...

  2. 让一个端口同时做两件事:http/https和ssh

    相信很多人都在YY:能不能让80端口分析连接协议,如果是http协议就让服务器交给http服务程序(如Apache.Nginx等)处理,如果是ssh协议就交给ssh服务程序(如OpenSSH Serv ...

  3. 安装mysql后必做的两件事

    1..删除掉不需要的用户 查看用户表mysql> SELECT User,Host FROM mysql.user; +------+-------------------------+ | U ...

  4. 安装完CentOS 7 后必做的七件事

    CentOS是最多人用来运行服务器的 Linux 版本,最新版本是 CentOS 7.当你兴趣勃勃地在一台主机或 VPS 上安装 CentOS 7 后,首要的工作肯定是加强它的安全性,以下列出的七件事 ...

  5. 安装完CentOS 7 后必做的七件事[转]

    CentOS是最多人用来运行服务器的 Linux 版本,最新版本是 CentOS 7.当你兴趣勃勃地在一台主机或 VPS 上安装 CentOS 7 后,首要的工作肯定是加强它的安全性,以下列出的七件事 ...

  6. 安装 CentOS 7 后必做的七件事

    原文 安装 CentOS 7 后必做的七件事 CentOS 是最多人用来运行服务器的 Linux 版本,最新版本是 CentOS 7.当你兴趣勃勃地在一台主机或 VPS 上安装 CentOS 7 后, ...

  7. 关于 Java Collections API 您不知道的 5 件事--转

    第 1 部分 http://www.ibm.com/developerworks/cn/java/j-5things2.html 对于很多 Java 开发人员来说,Java Collections A ...

  8. 简单几步优化你的windows,加快开机速度(重装windows之后要做的几件事)

    每个人都想要让自己的系统运行得快一些,开机快一些,我就来说说我自己的经验,我使用的系统是windows8.1,当然这有些方法也适用于其他的系统,我每次重装完系统之后第一件事就是下面几步,当然重装系统之 ...

  9. 关于Go,你可能不注意的7件事

    转自: https://tonybai.com/2015/09/17/7-things-you-may-not-pay-attation-to-in-go/ Go以简洁著称,但简洁中不乏值得玩味的小细 ...

随机推荐

  1. MUI事件管理

    模块:事件管理 http://dev.dcloud.net.cn/mui/event/ 事件绑定: 除了可以使用addEventListener()方法监听某个特定元素上的事件外, 也可以使用.on( ...

  2. 【JavaScript算法】---快速排序法

    一.快速排序法概念 我们将一个杂乱无章的数组进行一个快速排序,可以先从一个数组中取一个中间值,将一个数组一分为2,左边的数组跟中间值进行比较,小的放在左边,大的放在右边.比较完毕后再次取中间值,再次比 ...

  3. Django - 模型层 - 上

    一.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...

  4. Girls and Boys---hdu1068(最大独立集=顶点数-最大匹配)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1068 题意:有n个人,他们之间存在着恋爱关系,现在告诉你每个人和其他人的关系,然后要从这n个人间选出尽 ...

  5. Python开发【模块】:内置模块

    内置模块 1.__import__ # import app目录下的kingadmin.py文件 for app in conf.settings.INSTALLED_APPS: __import__ ...

  6. Day05 xml详解

    day05总结 今日内容 XML语法 XML约束之DTD XML解析器介绍 XML解析之JAXP( DOM.SAX ) DOM4J Schema   一.XML语法 XML概述   1 什么是XML ...

  7. Xshell连接阿里云Centos6.8

    由于我将xshell更新到了Xshell v5.0 Build 1332,在连接阿里云服务器的时候遇到了一些问题. 以前我登录到服务器的时候直接输入登录密码就行了,但是现在由于openssh服务器类型 ...

  8. Openstack(四)Mysql主从

    4.1 安装mysql 4.1.1 安装依赖 # yum install vim gcc gcc-c++ wget autoconf  net-tools lrzsz iotop lsof iotop ...

  9. Django REST framework 之JWT认证

    Json Web Token 1.JWT简介 JWT 是一个开放标准(RFC 7519),它定义了一种用于简洁,自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法.JWT 可以使用 H ...

  10. [py]python中的==和is的区别

    is比较id id(a) == id(b) == id(c) a is d #false ==比较值 a==b #true 举个例子:a = 1 b = a c = 1 d = 1.0 这里有3个对象 ...