У меня очень длинный список аннотированных генов. Они аннотируются на разных уровнях «A», «B», «C» и т. Д. Каждый уровень имеет другое имя, а в некоторых случаях - другой формат. Я хотел бы сохранить имена каждого уровня неповрежденными. В R текстовый документ импортируется как 1 столбец, и я хотел бы разделить строки A, B, C и D на столбцы. Строки упорядочены, что означает, что «B Level2» указан после приложения A Категория Level1 и выше категории «C Level3». «#» отдельный уровень D, из следующей категории «levell». SO, после каждого «#» я хотел бы разделить строки A, B, C и D на отдельные столбцы. Затем введите столбец влево с указанным выше именем категории уровней. Учитывая этот пример ДФ:Разделите столбец на несколько строк и заполните слева, в R
df <- data.frame(x = c("A<b>Level1</b>", "B", "B <b>Level2</b>", "C 02000 Level3 [BR:ko02000]", "C 02010 Level3 [PATH:ko02010]", "D Level4; K15551 tauA; taurine transport system substrate-binding protein", "D Level4; K15551 tauA; taurine transport system substrate-binding protein", "D Level4; K15551 tauA; taurine transport system substrate-binding protein"))
выходе должен выглядеть следующим образом:
A B C D
A<b>Level1</b> B <b>Level2</b> C 02000 Level3 [BR:ko02000] NA
A<b>Level1</b> B <b>Level2</b> C 02010 Level3 [PATH:ko02010] D Level4; K15551 tauA; taurine transport system substrate-binding protein
A<b>Level1</b> B <b>Level2</b> C 02010 Level3 [PATH:ko02010] D Level4; K15551 tauA; taurine transport system substrate-binding protein
A<b>Level1</b> B <b>Level2</b> C 02010 Level3 [PATH:ko02010] D Level4; K15551 tauA; taurine transport system substrate-binding protein
До сих пор я пытаюсь dplyr и tidyr для разделения() входной Д.Ф., но я могу Кажется, он работает. Предложения ?? мысли ??
Когда я использую второе решение здесь , Я получаю это сообщение об ошибке: «Ошибка в setNames (as.list (seq_along (vars)), vars): объект« A »не найден» – shu251
Он должен работать, но см. Редактирование для более общей версии – jeremycg
Спасибо! очень полезно – shu251