【发布时间】:2018-02-09 18:17:11
【问题描述】:
我有一个看起来像这样的数据框:
> head(female.meth.ordered)
Var1 Var2 value RankMeth
1 cg25296477 ES__WA09_passage39_Female____87.1429.1.1 0.85581970 1
2 cg01003813 ES__WA09_passage39_Female____87.1429.1.1 0.91677790 1
3 cg13176022 ES__WA09_passage39_Female____87.1429.1.1 0.04714496 1
4 cg26484667 ES__WA09_passage39_Female____87.1429.1.1 0.85785770 1
5 cg21028156 ES__WA09_passage39_Female____87.1429.1.1 0.04065772 1
6 cg11503671 ES__WA09_passage39_Female____87.1429.1.1 0.82933710 1
此数据框有 606528 行。 行 Var2 包含 54 个唯一的样本名称。
> unique(female.meth.ordered$Var2)
[1] ES__WA09_passage39_Female____87.1429.1.1
[2] ES__WA09_passage39_Female____87.1429.2.1
[3] ES__MEL4_passage35_Female____127.378.3.1
[4] ES__CSC14_passage29_Female____197.1296.1.2
[5] ES__CM6_passage19_Female____244.622.1.1
[6] ES__HES2_passage105_Female____32.135.4.1
54 Levels: ES.parthenote__LLC15_passage45_Female____317.905.1.1 ...
我想为“Var2”列中的前 10 个唯一匹配项指定“RankMeth”列的排名为 1。然后为“Var2”列中接下来的 10 个唯一命中分配“RankMeth”列的排名 2。 3、4、5级以此类推。
【问题讨论】:
-
require(dplyr); female.meth.ordered %>% mutate(RankMeth= as.integer(factor(Var2)))做你想做的事吗? -
这肯定很接近。但是,我只想有 5 个不同的等级。这排名 1-54。 Var2 中的独特命中已经按从小到大排序,所以我真的只需要以 10 个为一组选择它们并分配一个排名。
标签: r dataframe bioinformatics