与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. 点击TextView 弹出复制选项

    extends:http://www.eoeandroid.com/thread-226805-1-1.html package com.dotfive.chuanbang.view; import ...

  2. ElementUI select

    https://blog.csdn.net/qq_33769914/article/details/81738278 https://blog.csdn.net/m0_37972557/article ...

  3. jquery 实现点击按钮后出现倒计时效果(用于实现发送手机验证码、邮箱验证码)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. tomcat的server.xml中的Context节配置

    Tomcat的默认网站目录是:C:\Tomcat 9.0\webapps\ROOT,里面的index.jsp,就是tomcat官方提供的默认页,如果按照默认配置,访问链接应当是http://local ...

  5. mysql线上负载高怎么排查

    作为一个开发人员或者数据库管理员,学会检查数据库运行情况是必不可少的工作.造成MySQL线程卡顿的原因有很多,但是无论是哪种原因,我们发现问题之后的第一要务就是解决问题,防止问题继续恶化.那么,应该如 ...

  6. float和double

    Java中,使用Float.floatToRawIntBits()函数获得一个单精度浮点数的IEEE 754 表示,例如: float fNumber = -5; //获得一个单精度浮点数的IEEE ...

  7. R-CNN论文详解 - CSDN博客

    废话不多说,上车吧,少年 paper链接:Rich feature hierarchies for accurate object detection and semantic segmentatio ...

  8. Antenna Placement---poj3020(最大匹配)

    题目链接:http://poj.org/problem?id=3020 题意:每个 ‘*’都需要一个1*2的东西覆盖,问最少需要多少个1*2的东西来覆盖这些‘*’ 和Oil Skimming的题解几乎 ...

  9. Rain on your Parade---hdu2389(HK求最大匹配)

    题目链接 题意:有n个客人,m把雨伞,在t秒之后将会下雨,给出每个客人的坐标和每秒行走的距离,以及雨伞的位置,问t秒后最多有几个客人可以拿到雨伞? 就是求最大匹配的  Hopcroft-Karp复杂度 ...

  10. Day02 html回顾和CSS介绍

    昨天内容回顾     1.html的操作思想         ** 使用标签把要操作的数据包起来,通过修改标签的属性值来实现标签内数据样式的变化         *** <font size=& ...