与R纠缠的两件事——rownames和子集--转载

与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,]

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

时间: 2024-10-08 05:16:14

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

只有两件事:自己的事,别人的事

这个世界,只有两件事:自己的事,别人的事. 有一位朋友,每月末,单位里都有一早班,需要5:30起床.每到这一天,他都要要死要活地骂半天.是的,一个懒人,要他早起,难免不痛苦和抱怨.然而,女儿上了高中以后,他每天5:30起床,陪着女儿屁颠屁颠地起了三年,没落过一次.送完女儿,忙自己该忙的事,半天连个呵欠也没有. 让一个人痛苦的,不是事,而是谁的事. 人就是这么个德性.当然了,每一个人的人性深处,都会有一点自私.但自私得过了,就会豢养出好多的小聪明.小聪明就像小老婆,开始是奔着快活来的,最后都变成了

李笑来老师在《把时间当作朋友》曾说过:“所有学习上的成功,都只靠两件事:策略和坚持,而坚持本身就应该是最重要的策略之一

高效编程=工具+方法+体系+专注 前面根据个人的经验,分享了一些提高编程效率的个人心得.每个人的经历经验不尽相同,相信其实每个人心中都有一份自己的清单.但最最重要的是坚持投入,不断地练习.练习.练习.练习.练习…… 这里引用最近看到的名言自我勉励一下,来自Bruce Lee李小龙: “I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,00

为什么每天都在学习,生活还是没有任何改善?(你每天只有24个小时,能把两件事做到专家的级别就已经是人中龙凤了)

作者:刘教练 来源:刘教练(ID:liucoaching) 在这个浮躁的时代,坚守自己的选择,专注地投入其中,你才会走得更远.■■■ 我有一个大学同学,只看他的朋友圈,你一定不知道他是做什么的. 今天你看到他在参加吴晓波读书会,明天也许在看罗辑思维的演讲:今天研究互联网风口转向了何方,明天又对网红时代的来临言之凿凿:今天听说新媒体火了,明天就开始问别人“你知道六神磊磊吗?”:今天向往着诗和远方,明天又在李银河阿姨爱与性的教导中思考人生的乐园. 奥斯卡来了,他为小李子感天动地:诺贝尔来了,他为村上

媒体:亚投行后暗战 美国在两件事上排挤中国

媒体:亚投行后暗战 美国在两件事上排挤中国 编辑时间:2015/04/03 来源:凤凰财经 作者:信托家园 在亚投行一事上,舆论的普遍看法是,中国这一仗赢得漂亮,相比之下美国就很尴尬了. 在亚投行一事上,舆论的普遍看法是,中国这一仗赢得漂亮,相比(苏州理财)之下美国就很尴尬了.随着3月31日亚投行创世成员国申请截止,此事暂时告一小段落.目前,媒体又把目光聚焦到了两件事上:人民币国际化和美日主导TPP谈判.中国政府正积极推动(苏州信托)人民币国际化,希望让人民币获得IMF的特别提款权(SDR),成

连载《一个程序猿的生命周期》-《发展篇》- 16.最近两件事触动了我,30多岁真是死都不能死的年纪

坐着从北京驶向西域的绿皮火车,此时的出差感觉是一种放松,爱谁谁.受啥啥......我在火车上,出差成为一种旅行.在大城市的人就像上了发条的钟摆,一刻都不能停下来.最近上电梯N次忘按楼层,默默的站在那,谁也不会提醒你,缓过神儿来之后意识到这种间歇又是不正常的. 最近发生两件事让我思考了很久,可能每个人的钟摆真是无法停下来,因为人真的无法为自己而活,想来想去都有一种无奈的恐惧. 1.每个人都会老去 我二老爷(老爷的弟弟)有一个女儿.两个儿子,年岁大了,被送进了敬老院.按央视报道的,那些卖了宅基础和田

阿里云在LC3大会上透露未来要做的两件事

摘要: 阿里云研究员褚霸在LC3大会上同多位业界资深大咖同台交流表示,阿里云发展到今天,把过去应对淘宝.天猫大规模计算以及双11的计算能力转换成普惠的能力放在云上,这是一个非常大的挑战,也是其他厂商没有经历过的.这些挑战不断帮助阿里云积累经验,提升技术能力. 6月25日,由LFAsia, LLC主办的全球开源顶级盛会LinuxCon + ContainerCon + CloudOpen(LC3)在北京国家会议中心召开.来自国内外的开发人员.架构师.系统管理员.DevOps专家.商业领袖等数千名专

手机被偷前必做的两件事

很多"专家"都曾经发过<手机被偷后必做的N件事>这类教程,比如:致电运营商挂失手机号:致电银行冻结手机网银:手机解绑支付宝:微信冻结账号:修改微博.微信.QQ等密码:找手机运营商补手机卡:等等等等,实际上,这类教程所要求的事情都不是必要的,亡羊补牢不如未雨绸缪,真正要做到丢失后手机安全,只需要事前做两件事情:设置指纹密码和SIM卡密码.对于苹果用户来说,还需设置"查找我的iPhone"和iCloud两步验证. 以iPhone为例,一般都会设置"

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

相信很多人都在YY:能不能让80端口分析连接协议,如果是http协议就让服务器交给http服务程序(如Apache.Nginx等)处理,如果是ssh协议就交给ssh服务程序(如OpenSSH Server)处理呢? 答案显然是有的. 首先,配置http服务程序监听8080端口或者让https服务监听8443端口,配置ssh服务程序监听22端口.具体不再赘述,如果这都不懂就不用往下看了,因为肯定会搞不定的. 然后,安装一个叫haproxy的强大工具.步骤如下. 下载源代码: wget http:/

iOS二维码扫描,你需要注意的两件事

在 iOS7 以前,在iOS中实现二维码和条形码扫描,我们所知的有,两大开源组件ZBar与ZXing. 这两大组件我们都有用过,这里总结下各自的缺点: ZBar ZBar在扫描的灵敏度上,和内存的使用上相对于ZXing上都是较优的,但是对于 “圆角二维码” 的扫描确很困难.如: ZXing ZXing 是 Google Code上的一个开源的条形码扫描库,是用java设计的,连Google Glass 都在使用的.但有人为了追求更高效率以及可移植性,出现了c++ port. Github上的Ob