说说R语言的转置

Python011

说说R语言的转置,第1张

在群里看到了一个问题,他用R语言的转置函数 t() 对下面形式的数据进行了转置

转置之后的数据结构如下

他发现转置之后多了一行,也就是有了geneid这一行,和他预期的不符合。按照预期,geneid这一行应该是成为列名,而不是作为输出的第一行。那么,为什么会出现这个情况呢?这就需要从 t() 这个函数说起。

使用 ?t ,你会得到关于这个函数的函数说明。在函数的Detials部分中,有这样一段

即,数据框会先用 as.matrix() 转成矩阵格式,然后再引用 t() ,最终你对一个数据框使用 t() 函数时,你会得到一个矩阵,而非原先的data.frame.

举个例子:

因为矩阵要求存放的内容是同一种数据类型,对于输入的数据框而言,一般都会有字符串,数值这些,那么最终都会被转成字符串。

对于最开始的问题而言,因为原先的数据框的第一列是字符串,那么自然而然会把所有的数据都变成字符串,然后把第一列变成第一行。而如果要实现他真正的目的,需要先将第第一行变成行名,然后删掉第一行在转置,也就是

其结果就是先保证原来的数据框里面都是数值数据,而不是让第一列充当行名。

延伸一下,对于超过2维的数组,我们要用到 aperm 函数才能对数据进行转置。当然,超过二维的转置,你甚至都无法直观感受到这是一个什么过程。

色彩是一门重要的艺术语言。

在不同的领域,色彩都以其扑面而来的色感,带给人们直观的生理和心理感受,产生想象和联想。

R语言无与伦比的绘图系统能够产出精美的图,如何构造精美的图片,色彩起着举足轻重的作用,良好的配色往往在图表中起到点睛的作用。

但往往都是别人的图很精美,自己画的图则丑得哭。

希望通过本文能够提升R语言的色彩的基本运用,如果看完做的图任然很丑,那就是审美的问题,可以找个美术老师补习一下审美的知识。

初中物理课我们大概都做过棱镜实验,白光通过棱镜后被分解成多种颜色逐渐过渡的色谱带,颜色依次为红、橙、黄、绿、青、蓝、紫,这就是可见光谱,对啦,彩虹就是光色散的现象。

而色彩的混合模式分为:

红、绿、蓝三种色光无法被分解,故称“三原色光”,因此将红(R)、绿(G)、蓝(B)三色作为色光三原色。可见光谱中的大部分颜色可以由三种基本色光按不同的比例混合而成,色光三原色被广泛应用于电视机、监视器等主动发光的产品中。

由于颜料本身是不发光的,我们之所以看到颜料的各种颜色是光源照射到颜料后,被颜料吸收部分色光后反射的一部分色光。因此颜料三原色是色光混合原理的延伸,它是色光做在做减法,所以亦称为减法三原色。青色、品红、黄色三种颜料两两混合能产生其他各种颜色,所以把青色、品红、黄色称为颜料三基色。颜料三基色的混色在绘画、印刷中得到广泛应用。

palette()调色板

colors()生成R的颜色

rgb()生成颜色编码

col2rgb()将颜色转为rgb色值。

rgb2hsv(col2rgb("blue"))

R自带的grDevices包有如下6个调色板,传入获取颜色的个数,就获得相应个数的颜色列表,gray()的参数需在[0,1]。

当我们不知道怎么配色,或者怎么配色都不好看的时候,可以直接用别人定义好的主题是最方便的做法,你只负责出图,颜色的事情交给专业的人士来处理。

ggthemes包中的色彩方案都是打包好,命名过的,所以我们引用的时候,只需赋值即可。

在使用ggplot的过程中可使用的就比较多。

增加Viridis 色带

RColorBrewer

GGSCI

www

查看支持的色板

系统会自动生成你想使用的颜色,不用一个一个单独设置,非常方便。