【R语言】rep函数生成差异表达分组变量
前面给大家介绍了☞【R语言】rep函数的使用,今天我们来举几个数据分析中的应用,例如差异表达分析时,样本类型变量,我们就可以使用rep函数来生成。
我们在☞GEO芯片数据差异表达分析 中分析的GSE68840这套数据,一共有7个样本,分别是
"plx4032 sensitivity: Sensitive" "plx4032 sensitivity: Sensitive" "plx4032 sensitivity: Sensitive" "plx4032 sensitivity: Resistant" "plx4032 sensitivity: Resistant" "plx4032 sensitivity: Resistant" "plx4032 sensitivity: Resistant"
3个Sensitive,4个Resistant,所以我们使用的是,下面这条命令
mRNA_sample_type=factor(c(rep("sensitive",3),rep("resistant",4)))
可以得到如下这个样本类型的因子,
有人肯定会好奇了,如果样本类型不是3个Sensitive,4个Resistant这种一类在一起的,该怎么处理呢?
我们再来看几个例子
假如我们的样本类型是下面这样的,交替排布的
normal tumor normal tumor normal tumor
rep(c("normal","tumor"),3)
再比如多出一个normal
normal tumor normal tumor normal tumor normal
c(rep(c("normal","tumor"),3),"normal")
有人又要说了,你这不还是很规律的吗?如果完全没有规律,该怎么处理。例如下面这样的。
normal tumor tumor normal tumor normal tumor
我们给大家介绍三种方法吧!
方法一、简单粗暴,但work,就是有点累,c()是yyds
一个一个敲出来,在样本数超过二三十就不建议使用这种方法了,费眼睛,费键盘。
c("normal","tumor","tumor","normal","tumor","normal","tumor")
方法二、巧用因子,事半功倍
我们不用敲完整的样本类型名字,用数字来代替,然后再用factor转回来。
#1=normal
#2=tumor
factor(c(1,2,2,1,2,1,2),levels=c(1,2),labels=c("normal","tumor"))
你会发现跟用c()得到的结果是一样的
方法三、登堂入室,活学活用
我们联合使用,strsplit函数+factor函数
在方法二中,我们相当于还是要用c()先创建一个数值向量,逗号还是要敲的。方法三,逗号都省了。我一直觉得“懒人”是第一生产力!
gsms <- "1221212"
#字符串分割成向量
sml <- strsplit(gsms, split="")[[1]]
#转成因子
gs <- factor(sml)
#将数字替换成样本类型
levels(gs) <- c("normal","tumor")
gs
上面介绍的三种方法,在样本数比较少的时候还是比较好用的,但是一旦样本数上百,上千了,以上三种方法都不太适用,后面我们再把“意大利炮”拉出来!大家先把鸟枪使好。
参考资料:
相关文章
- JetBrains GoLand 2022 Mac中文激活版(GO语言编程软件)
- 【说站】c语言中static修饰局部静态变量
- 【视频】文本挖掘:主题模型(LDA)及R语言实现分析游记数据|附代码数据
- 2022-09-20:以下go语言代码输出什么?A:8 8;B:8 16;C:16 16;D:16 8。package main
- c语言字符串赋值_c++中字符串变量
- GoLang10 - Go语言变量作用域
- GoLang4 - Go语言变量
- Go语言实战之切片的内部实现和基础功能
- 【视频】R语言生存分析原理与晚期肺癌患者分析案例|数据分享|附代码数据
- R语言缺失数据变量选择LASSO回归:Bootstrap重(再)抽样插补和推算
- R语言多元动态条件相关DCC-MVGARCH、常相关CCC-MVGARCH模型进行多变量波动率预测
- 跟着Nature Communications学数据分析:R语言做随机森林模型并对变量重要性排序
- R语言使用虚拟变量(Dummy Variables) 回归分析工资影响因素|附代码数据
- 【Kotlin】Kotlin 语言基础 ( 环境安装 | 变量 | 简单使用 | 函数 | 异常 | 递归 )
- 【C 语言】const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 )
- 【Groovy】Groovy 动态语言特性 ( Groovy 中的变量自动类型推断以及动态调用 | Java 中必须为变量指定其类型 )
- Go语言计算函数执行时间
- Go语言sync包与锁:限制线程对变量的访问
- Github重定义开源软件,代码将成下一种语言?
- 多语言编程必备的十大 Vim 插件
- 开发嵌入式Linux应用——C语言实战(嵌入式linuxc语言)
- c语言实现上传文件至Mysql数据库(c上传文件到mysql)
- 关于c语言的一个小bug详解
- JavaScript语言核心数据类型和变量使用介绍