自动上色和横坐标排序是两个比较重要的画图技能。
在群里只要有人问,学习R语言该看什么书,必定有人回答“R语言实战”,我也买过。里面的两个知识点给我留下很大困惑,一个是数据处理的melt和cast,另一个是因子。
一开始就是不能理解,因子是干什么的,到了后面用的多了,发现因子最大的功能就是分类。
因子就是分类器

因为这个特性的存在,因子被广泛地用于不同类别的自动上色。
除此之外,因为还有一个重要的功能
因子可以调顺序
昨天晚上,一个学员问了我这个问题:
他在做meta分析时画图,发现这三个组没有按照时间大小排序,而是按照字母排序了,他说已经搞了2个小时,问我怎么办。我毫不留情的说了几句,这个明显是上课的内容,如果你的这三个月份是数据框的一列,你只要把他们因子化,再重新排序就可以了。

5分钟后,他搞定了。

本来我想重现一下这个过程,但是不方便用这个数据,然后我发现在这个帖子中曾经写过
乱花渐欲迷人眼,偷得浮生半日闲
当时就是用因子排序的方法,把数据从这个样子

变成了排序后的样子

代码就在那个帖子里,我又读了一遍发现确实写得走心,观点很正,下午路过师弟的工位,发现他正好在看这个帖子。
再后来,这个因子排序的方法就用到了limma差异分析那里
GEO芯片分析中的大坑,差异基因完全相反!
最后要讲一个因子的坑
因子转数值要小心!
举个例子
创建一个向量
a <- rep(18:21,3)
把它因子化
a <- factor(a)
这时候这个数据是这样的,他起到了分类的作用,告诉我们这群数只有4类

如果调整因子的顺序, 我们确认因子的顺序可以用过这个方法改变
aa <- factor(a,levels = c("21","18","20","19"),ordered = F)

下面是坑,如果我想把这个数据变成数值呢?用as.numeric()
对吧,

这样转换回去傻眼了,连大小都改了,而且没有任何警告信息,假如我们在处理自己数据的时候,碰到这种情况,怎么办,记住这句话
因子转数值,需要先变成字符串,再转换

好了,总结一下,因子有两个使用场景和一个坑,分别是
- 因子是分类器
- 因子可以调整顺序
- 因子转数值需要先转为字符串
明天,我要更新一期甲基化的差异分析。
接下来连续六个月的更新主要分为三个部分的内容(今天是第5天了):
第一部分,
要把线下课程没有讲到的知识慢慢更新出来,比如甲基化,多芯片联合分析,还有什么WGCNA,ceRNA,microRNA批量靶基因预测,突变,免疫浸润,微环境等等,因为相对于课上的内容,这些都是次要的,属于非必须技能,当你R语言基础扎实的时候,我通过文字一样可以把你教会,不需要浪费课堂上的时间。
第二部分,
是测序方面的技能,博后期间给自己设计了这些课题,会逼着我自己去进步,这也是这六个月比较重要的组成部分。像熊讲的,这个领域没有门栏,但有瓶颈,我不想拿自己的爱好跟别人的专业去比拼,因为我本身就要努力成为专业人士。
第三部分,
是文献阅读,各种奇思妙想,没有记录就没有发生,当我回看乱花渐欲迷人眼,偷得浮生半日闲这个帖子的时候,我不敢相信,我还说过那些话,我挺感激这些记录的。当我回看高中时秒天秒地的你,是否还会这些数学题?这个帖子的时候,我发现在那连续一个多月中,我跟很多非专业内的朋友保持了很好的互动,这些都会增加幸福感。
当然,有时候想划水的时候,会写一些鸡汤文,我写的鸡汤文阅读量都还可以,说明大部分朋友都是营养不良。
好了,我是果子,明天见,期待我们一起发育,变粗变长。