在R中为各自的因子分配不同的名称

时间:2016-03-04 19:14:14

标签: r

我有一个基因计数矩阵,其中每个列的名称都是治疗的名称。有768列,但只有94个独特的治疗名称。我想创建一个名为“condition”的因子,其中每个唯一的列名是一个因子,即该处理的重复长度。我已经为更小的数据集做了这个,比如:

condition <- factor(c(rep("albendazole", 12), rep("aprepitant", 12), rep("dmso", 12)))

我宁愿采用编程方式来做到这一点,而不是写入所有94个治疗名称....然后下一次所有376,等等。

以下是数据的示例,其中每个治疗名称都有重复:

head(tmp)
    Camptothecin_0.72_6 Doxorubicin(Adriamycin)_0.4_6 Clofarabine_2.4_6 TopotecanHCl_0.76_6
    [1,]           0.4988997                     1.2411489        -1.5362657          0.05383272
    [2,]          -0.4872643                    -1.7530969         0.6367353         -0.40757086
    [3,]           0.7481519                     0.7471636        -0.7484631         -1.28497626
    [4,]          -0.8587391                    -0.8361535         0.7825174         -0.82832179
    [5,]          -1.5811394                     0.7168691         0.8131447          0.43144866
    [6,]          -0.7748943                    -1.8328256        -2.5549894         -0.03126882
         Irinotecan_7.08_6 Camptothecin_0.72_6 Doxorubicin(Adriamycin)_0.4_6 Clofarabine_2.4_6
    [1,]         0.9062674          -0.4888864                     1.3231554       -0.04387194
    [2,]         0.4650847          -0.1064269                     0.8167768       -1.68059374
    [3,]         0.4695207          -0.4535924                     0.2252196        1.63049589
    [4,]         1.2535385          -0.1456160                    -0.7626766       -0.03597099
    [5,]        -0.3325913           0.4537663                     1.2209316       -0.40224152
    [6,]         1.3538401           1.7707271                     0.2676905        0.16330821
         TopotecanHCl_0.76_6 Irinotecan_7.08_6
    [1,]          -0.1609603        0.10421864
    [2,]          -2.2229499       -0.21371830
    [3,]          -1.8540864       -0.02760775
    [4,]          -0.3906461       -0.21672657
    [5,]           0.7753001       -0.37826372
    [6,]          -0.5790878        0.56551865

提前感谢任何建议!

1 个答案:

答案 0 :(得分:2)

cols <- table(colnames(tab))
factor(rep(names(cols), cols))