【发布时间】:2018-12-19 02:47:44
【问题描述】:
我有一张表格,其中包含不同基因组位点的 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。
非常感谢大家的帮助!
【问题讨论】:
-
为什么
Risk Level是row.name?为什么不是自己的专栏? -
行名对我的花生大脑来说是有意义的,但我当然可以将它变成一列,就像你在下面所做的那样。但我不确定这在解决问题方面对我有什么帮助。
-
将其设为一列可让您基于此“风险级别”进行重构,当且仅当它是数字时。然而,基因本身的水平并没有改变。
标签: r dplyr refactoring tidyverse