У меня очень большой вектор сигар:
my.vector = c("44M2D1I","32M465N3M", "3S4I3D45N65M")
Это я хотел бы преобразовать в вектор разделенных сигар - логика такова: всякий раз, когда я нахожу число, за которым следует N, я должен разделить его, поэтому я разделил "32M465N3M" на "32M" 465Н","3М"; и «3С4И3Д45Н65М» на «3С4И3Д», «45Н», «65М»; и "44M2D1I" не разделялся, потому что в нем не было "N".
my.vector.split = c("44M2D1I, "32M", "465N", "3M", "3S4I3D", "45N", "65M").
Мой вектор очень велик, поэтому в идеале я хотел бы использовать параллельные возможности кластера. Я хотел бы использовать mclapply с ncores.
В идеале я хотел бы определить что-то вроде этого:
my.vector.split = unlist(mclapply(my.vector, my.splitting.function, mc.cores = ncores))
где длина my.vector.split равна длине (my.vector) + (количество Ns) * 2.
Примечание. В кластере HPC, который я использую, не установлена последняя версия биокондуктора, поэтому я не могу использовать cigartoRleList и другие полезные инструменты для работы с сигарами.