美文网首页
【R语言】rep函数生成差异表达分组变量

【R语言】rep函数生成差异表达分组变量

作者: 生信交流平台 | 来源:发表于2022-03-05 13:09 被阅读0次

    前面给大家介绍了【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")
    

    方法二、巧用因子,事半功倍

    【R语言】R中的因子(factor)

    ☞【R语言】因子在临床分组中的应用

    我们不用敲完整的样本类型名字,用数字来代替,然后再用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
    

    上面介绍的三种方法,在样本数比较少的时候还是比较好用的,但是一旦样本数上百,上千了,以上三种方法都不太适用,后面我们再把“意大利炮”拉出来!大家先把鸟枪使好。

    参考资料:
    【R语言】rep函数的使用 GEO芯片数据差异表达分析

    【R语言】R中的因子(factor)

    ☞【R语言】因子在临床分组中的应用

    【R语言】rep函数生成差异表达分组变量

    相关文章

      网友评论

          本文标题:【R语言】rep函数生成差异表达分组变量

          本文链接:https://www.haomeiwen.com/subject/letbrrtx.html