我有一个基因计数矩阵,其中每个列的名称都是治疗的名称。有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
提前感谢任何建议!
答案 0 :(得分:2)
cols <- table(colnames(tab))
factor(rep(names(cols), cols))