我有一个表格,在不同的基因组位点上有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= 2,风险等级4=3。
非常感谢你们的帮助!
发布于 2018-12-19 03:23:47
您需要按以下方式进行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))https://stackoverflow.com/questions/53843892
复制相似问题