head,str,class之后加上table
The following article is from 生信技能树 Author 生信技能树
我们的生信入门班和数据挖掘线上直播课程已经有了三年多的历史,培养了一波又一波优秀的生信人才。新一期的生信入门班学员热情高涨,他们富有探索精神,又乐于助人,这是一个在帮助别人的过程中自己也获得进步的例子,令我们非常开心。
(生信技能树学员 )
Tags:生信技能树11期数据挖掘班学员;被卷的亲娘都不认识的科研小渣;被生活按着头问着服不服的异乡人;如果你认识我的标签,我们来自共同的精神家园......
南瓜南瓜🎃写于2022.5.4,青年节快乐
昨天用caret切割队列,训练集建模画生存图很顺利,一毛一样的代码测试集就出现了奇怪的报错。
切割的方法就不放了,总之dat2就是我的训练集
names(fp) = dat2$ID
ri = ifelse(fp<median(fp),"lowrisk","highrisk")
ri = factor(ri,levels = c("lowrisk","highrisk"))
sfit <- survfit(Surv(time, event)~ri, data=dat2)
ggsurvplot(sfit,palette = c("#E7B800", "#2E9FDF"),
risk.table =TRUE,pval =TRUE,
conf.int =TRUE,xlab ="Time in months",
ggtheme =theme_light())
训练集生存曲线,美吧?
下面是测试集
names(fp) = dat3$IDri = ifelse(fp<median(fp),"lowrisk","highrisk")
ri = factor(ri,levels = c("lowrisk","highrisk"))
table(ri)
sfit <- survfit(Surv(time, event)~ri, data=dat3)
啊这。。。哪错了?函数必然不会错,肯定是我数据错了
把dat3打开左看右看都很可爱,没什么问题,跟训练集dat2一样可爱
必应搜了一个来小时,我不认识他,他也不认识我,后半夜了先睡吧。。。
第二天起来,在群里求助
那就table下吧
dat3还是一如既往的可爱,还有啥能改的吗?ri也是输入数据,可以改
table(ri),不table不知道,一table吓一跳
ri
lowrisk highrisk
0 0
啥也没有
好一片白茫茫大地真干净。。。
ri哪来的,fp算中位数分出来的
再看看fp怎么了
TCGA-A8-A09W-01A TCGA-A8-A08L-01A TCGA-A8-A06Q-01A
2.16326419 3.43864608 1.07523611
TCGA-A8-A09N-01A TCGA-A8-A06Z-01A TCGA-AC-A8OQ-01A
0.91136286 1.80119628 3.63723566
TCGA-D8-A27P-01A TCGA-AN-A04D-01A TCGA-AN-A04C-01A
...
0.41864215 1.40434772 1.30603643
TCGA-GM-A2DA-01A TCGA-B6-A0IJ-01A TCGA-B6-A0RI-01A
-2.93763366 -0.34409350 1.14874097
TCGA-B6-A0RE-01A TCGA-B6-A0RN-01A TCGA-B6-A0I5-01A
-0.90502148 -0.51753585 -2.65137515
TCGA-B6-A0RU-01A <NA> <NA>
0.06079243 0.03573851 -4.08829626
<NA>
-0.05904328
刷屏了,中间的都不用看,竟然有NA
连数都没有,大罗神仙也算不出来中位数
再往上接着找:
fp <- predict(model,newdata = dat3)fp是这么算出来的,绕了一圈又绕回dat3了
fp没有值那肯定dat3里对应的值也没有呗,不用说dat3有缺失值了
回到前面的数据整理
dat3 = na.omit(dat3)去掉缺失值再跑一遍
> fp <- predict(model,newdata = dat3)> fp
TCGA-A8-A09W-01A TCGA-A8-A08L-01A TCGA-A8-A06Q-01A
2.16326419 3.43864608 1.07523611
TCGA-A8-A09N-01A TCGA-A8-A06Z-01A TCGA-AC-A8OQ-01A
0.91136286 1.80119628 3.63723566
TCGA-D8-A27P-01A TCGA-AN-A04D-01A TCGA-AN-A04C-01A
-0.45356650 1.42863581 1.76104458
这回fp全了
再往下的ri
> table(ri)ri
lowrisk highrisk
261 262
哈哈哈
生存分析
我就问你美不美。。。
总结:
1.R语言是不会错的,错的是永远是我。
2.函数是不会错的,错的永远是我的数据。
3.健明老师已经说出来了:试试看head,str,table,努力摸索
4.儿子有问题往上找老子
Acknowledagement
感谢生信技能树小洁老师的指导,以及5月生信入门班的同学们的热情互动。上述内容为个人的浅薄理解,目前学习进度还没有涉及到在生信分析中的应用,如有错误,请指正!后期如果在生信分析中有应用,会尝试更新。
文末友情宣传
强烈建议你推荐给身边的博士后以及年轻生物学PI,多一点数据认知,让他们的科研上一个台阶:
数据挖掘(GEO,TCGA,单细胞)2022年5月场,快速了解一些生物信息学应用图表 生信入门课-2022年5月场,你的生物信息学第一课