Как составить список векторов из фрейма данных из 2 столбцов в R? - PullRequest
0 голосов
/ 07 марта 2019

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

У меня есть этот фрейм данных:

> head(df)
     Intron.ID
1 AT1G79930.2 
2 ATCG00720.1 
3 AT1G02080.2 
4 AT4G32551.2 
5 AT5G66190.1 
6 AT1G51720.1 
                                                                                                    Sequence.s.
1                                                        ['GAGGTGCTTGCAAATCGTTCACATCACTGTACTGCACATCAACAGAGAAT']
2  ['GCTTCTTTGTATTTTATGTTTTTAGTCATTATAGCTTTTTTTTTGAATAA', 'TGTTTGAGCTGTACGAGATGAAATTCTCATATACAGTTCTTGGAGGGGGG']
3                                                        ['CTCACCCGGAGTTAGTCACTGTTATTGAACAAGCACTTTCAAGGATATCA']
4                                                        ['AAGTGGTGGTATGTCTCCACAGGTTCAAACTCGAAATCAGCAACTTCCTG']
5                                                        ['AAGGGTTCTTAGGTTTGAATTTGTTGACAACAATCCCTTCTTCCTGTTTC']
6  ['ATTTGGCTTCTCACATAACACTGAAGCTGTGTGACTTGTGTACAATTTTG', 'CTGAGTTAATCTAATAAGCAAGATACATTTTACTTTCGTTTTCCTCTTCC']

И мне нужен этот вывод:

$AT1G79930.2
[1] "GAGGTGCTTGCAAATCGTTCACATCACTGTACTGCACATCAACAGAGAAT"

$ATCG00720.1
[1] "GCTTCTTTGTATTTTATGTTTTTAGTCATTATAGCTTTTTTTTTGAATAA" "TGTTTGAGCTGTACGAGATGAAATTCTCATATACAGTTCTTGGAGGGGGG"

$AT1G02080.2
[1] "CTCACCCGGAGTTAGTCACTGTTATTGAACAAGCACTTTCAAGGATATCA"

$AT4G32551.2
[1] "AAGTGGTGGTATGTCTCCACAGGTTCAAACTCGAAATCAGCAACTTCCTG"

$AT5G66190.1
[1] "AAGGGTTCTTAGGTTTGAATTTGTTGACAACAATCCCTTCTTCCTGTTTC"

$AT1G51720.1
[1] "ATTTGGCTTCTCACATAACACTGAAGCTGTGTGACTTGTGTACAATTTTG" "CTGAGTTAATCTAATAAGCAAGATACATTTTACTTTCGTTTTCCTCTTCC"

Ближайший результат, который я получил, был следующей командой:

> df2 <- split(df, df[1])

> head(df2)
$`AT1G01760.2 `
      Intron.ID                                             Sequence.s.
11 AT1G01760.2   ['ACCGGTTGTTCCAAGAATAACTTCGTGTAAGCCAGAATAGTTCCAACACA']

$`AT1G02080.2 `
     Intron.ID                                             Sequence.s.
3 AT1G02080.2   ['CTCACCCGGAGTTAGTCACTGTTATTGAACAAGCACTTTCAAGGATATCA']

$`AT1G04430.2 `
     Intron.ID                                             Sequence.s.
9 AT1G04430.2   ['CATTATGAACGGCATTGTCCTCCTCCCGAAAGACGGTTTAATTGTTTGAT']

$`AT1G06150.1 `
      Intron.ID                                             Sequence.s.
45 AT1G06150.1   ['TGCTAGTGGATCCGTAAGTGCCAAAAATAAATGCCTGATATGAGTCACCA']

$`AT1G17680.3 `
      Intron.ID                                             Sequence.s.
48 AT1G17680.3   ['GCAAGCACCAGCTTTCGATATAGCATACTATTACCTTTCACGTGTTTCTG']

$`AT1G18470.2 `
      Intron.ID                                             Sequence.s.
81 AT1G18470.2   ['TTCCTTCGTCAATTGACCACCAACCTAATAGCCTGGAACCATGGTGCAAG']

Все неправильно: последовательности не соответствуют правильному назначению имени, а некоторые последовательности отсутствуют.Это не хорошее решение ...

Дополнительная информация в соответствии с запросом (я добавил 2 '...'):

> dput(head(df))
structure(list(Intron.ID = structure(c(15L, 80L, 2L, 58L, 79L, 
9L), .Label = c("AT1G01760.2 ", "AT1G02080.2 ", "AT1G04430.2 ", 
"AT1G06150.1 ", "AT1G17680.3 " ...), class = "factor"), Sequence.s. = structure(c(49L, 
59L, 39L, 3L, 2L, 15L), .Label = c(" ['AAACACAAGGGTGGGGTTGACTCTCAAACTCACAAAAAGTTACATTTTCT']", 
" ['AAGGGTTCTTAGGTTTGAATTTGTTGACAACAATCCCTTCTTCCTGTTTC']", " ['AAGTGGTGGTATGTCTCCACAGGTTCAAACTCGAAATCAGCAACTTCCTG']", 
" ['AATCCATAAAGAAAATGGAGGAGAACATTCAGAATCTGGAAGGTAAGAAC', 'GATTTATGCTTTGGCAACAAAGAGTAGTCATATTCCATACAGGAACTCAA']", 
" ['AATTGATCCAGATTGTAGATTAATTGGACTCCATCTGTATGACGGCTTGT']" ...
), class = "factor")), row.names = c(NA, 6L), class = "data.frame")

Итак, как я могу выполнить это преобразование, не передаваязаголовок «Intron.ID» и «Sequence.s.»к векторам и просто держите последовательности внутри вектора (в правильном порядке и назначении), не включая Intron.ID?

Любая помощь будет очень цениться!

Спасибо всемзаранее.

Сердечно,

Фернанда Коста

...