Разделение data.frame на 2 столбца

У меня есть файл fasta, и я прочитал файл fasta, используя "read.delim" в R. Соответствующий data.frame выглядит следующим образом:

>tm_sd_1256
new_DF=NULL
new_DF$names=as.data.frame(names(fasta_seq))
new_DF$sequences=as.data.frame(fasta_seq)
1 MJAKDHRZTASDJASJDKASJDURUJDFLSDJFSDIFJKSDFKSJDFLJSDLFD ASDJASDJ >tm_sd_5672_1_2 AIZZTQBCSKLKDSHDADBCMSJHKQUWIRJHJJKKDLJSGDHASGDZGDHGHAGSDZASDASDVASGASDHGCAHGS SADASDA[sample.fasta file][1] >tm_sd_543_1_2 MUZTREQWERNBVXCYMNMVHZTOPOPOEURDASDOPOQWEUZQUIZRZIRIEIWUEWASDHASHDAHSDHAKHHSDHASHDJASHDAHUWIEUROWUOERUOWEUROOWWWW >tm_sd_212_0_2 MTZTPSPASDASZDATSZGZASDZATSDASDARSDASDASDASDASDZTASZDTAXAYXFASTDRASRZWUEWERZWERZ

Я хотел бы разделить этот data.frame на два столбца: один столбец для имен последовательности, а другой столбец для соответствующих последовательностей.

Я создал data.frame и сохранил имена последовательностей в одном столбце, но когда я попытался сохранить соответствующие последовательности в другом столбце, мне выдали ошибку, в которой говорилось, что у замены 55 строк, а у данных 436 строк.

Следующий код, который я пробовал, дал мне следующую ошибку:

new_DF=NULL
new_DF$names=as.data.frame(names(fasta_seq))
new_DF$sequences=as.data.frame(fasta_seq)

Как я могу добиться этого с помощью R., пожалуйста, помогите мне.


person Carol    schedule 24.02.2015    source источник
comment
Не могли бы вы представить воспроизводимый пример и весь код, который вы применяете? Я действительно не понимаю, в чем я должен тебе помочь. Обратите внимание, что data.frame состоит из векторов, а не из дополнительных data.frames.   -  person codingEnthusiast    schedule 24.02.2015


Ответы (1)


Пытаться

lines <- readLines('deena.fasta')
indx <- grepl('>', lines)
Sequence <- tapply(seq_along(indx),cumsum(indx), FUN=function(x) 
            paste(lines[tail(x,-1)], collapse=""))
d1 <- data.frame(names=lines[indx], Sequence, stringsAsFactors=FALSE)
head(d1,2)
#           names
#1 >tm_sd_1256_2_1
#2 >tm_sd_5672_1_2
                                                                           #                         Sequence
# 1                                              MJAKDHRZTASDJASJDKASJDURUJDFLSDJFSDIFJKSDFKSJDFLJSDLFDASDJASDJ
# 2 AIZZTQBCSKLKDSHDADBCMSJHKQUWIRJHJJKKDLJSGDHASGDZGDHGHAGSDZASDASDVASGASDHGCAHGSSADASDA[sample.fasta file][1]
person akrun    schedule 24.02.2015