我有一张桌子,上面有3个处于不同基因组位点的风险等位基因。最终,我需要为该表设置一个关键字,以识别大量样本中受风险状况影响的不同等位基因的流行程度。我目前有以下风险表的示例:
genomic.stuff <- data.frame(c("A A", "A G", "G A", "G G"), c("T T", "C T", "T C", "C C"),
row.names= c("Risk Level 1", "Risk Level 2", "Risk Level 3", "Risk Level 4"),
stringsAsFactors = TRUE)
colnames(genomic.stuff) <- c("Gene A", "Gene B")
genomic.stuff
Gene A Gene B
Risk Level 1 A A T T
Risk Level 2 A G C T
Risk Level 3 G A T C
Risk Level 4 G G C C
str(genomic.stuff)
'data.frame': 4 obs. of 2 variables:
$ Gene A: Factor w/ 4 levels "A A","A G","G A",..: 1 2 3 4
$ Gene B: Factor w/ 4 levels "C C","C T","T C",..: 4 2 3 1
所以我想对此数据帧做两件事。请记住,我有一个包含许多基因的大型映射文件,因此,如果可以在dplyr或tidyverse的整个表格中完成此操作,那将是最好的。
1)我想重新对因素进行加权,以便它们根据风险状态进行排名,而不是根据字母顺序自动进行加权(数据框已经存在,所以我认为我不能在风险级别上做到这一点数据框构造)
2)我想重新分配因子级别,以使风险级别1 = 1,风险级别2 | 3 = 2,风险等级4 = 3。
非常感谢大家的帮助!
答案 0 :(得分:1)
您将需要制作Risk Level
numeric
并进行如下重新排序:
编辑:您可以选择重新分类风险级别。
library(tidyverse)
genomic.stuff <- data.frame(c("A A", "A G", "G A", "G G"), c("T T", "C T", "T C", "C C"),
row.names= c("Risk Level 1", "Risk Level 2", "Risk Level 3", "Risk Level 4"),
stringsAsFactors = TRUE)
colnames(genomic.stuff) <- c("Gene A", "Gene B")
new_genome<-genomic.stuff %>%
mutate(RiskLevel=as.factor(c(1,2,3,4))) %>%
mutate(RiskLevel=as.numeric(c(1,2,2,4)),`Gene A`=fct_reorder(`Gene A`,RiskLevel),
`Gene B`=fct_reorder(`Gene B`,RiskLevel))
levels(new_genome$RiskLevel)
levels(as.factor(new_genome$RiskLevel))