как объединить элементы (символы) из списка в один элемент в R?

#r #genetics

Вопрос:

Я пытаюсь создать простой скрипт на языке R для имитации давления окружающей среды на гены, поэтому у меня есть следующий генератор случайных чисел ATCG:

 list lt;- c("A","T","C","G") samp lt;- sample(list, 1000, replace = T) display lt;- function(a,b,c) {  result lt;- sample(list, 1000, replace = T)  return(result) }  a lt;- display(a)  b lt;- display(b)  c lt;- display(c)  

Код работает нормально, но концептуально неверен, потому что кодон должен быть объединен как группа символов, а не один. Поэтому мой вопрос в том, как соединить эти элементы (1:4,5:8,…107:110) ?

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

Заранее спасибо!

Комментарии:

1. Привет, 1) зачем вы ставите функцию(a,b,c), если ваша функция не является функцией a, b или c, а только некоторой репликацией. Ваша функция-пример функции () (список, 1000, заменить = TRUE) 2) неясно, чего вы хотите. Вам нужен строковый вектор слов с 4 символами в каждом слове ?

2. 3) список-это не список, а строковый вектор

3. Привет, отвечаю 1) Я только что создал функцию, чтобы она могла запускать другой образец для каждого вектора 2) да, каждая строка с 4 символами из образца списка (ATCG). 3) извините за неправильное представление, но если это был вопрос, я не получил Спасибо!

Ответ №1:

Может быть, это то, что вы имели в виду:

 dat lt;- setNames( data.frame(  replicate(3, replicate( 1000,  paste0(sample(c("A","C","T","G"),4, replace=T),collapse="") ) ) ),  c("a","b","c") )  

Результат

 dat  a b c 1 CATG CTAG CGAT 2 AGCT GACT TGAC 3 TCAG TAGC TCAG 4 CGAT GACT GTAC 5 TCGA TAGC CTGA ...etc  

Вы должны уметь проводить сравнения с dat$a , dat$b и dat$c

Комментарии:

1. Извините, я не могу проголосовать за ваш ответ, но это почти все. Мне нужен такой вывод: gt;a = ([ATCG],[ATTA],[GGAT],…) gt;gt;b = ([TATA],[GTTA],[GGAT],…), чтобы я мог сравнить a ~ b

2. Внес некоторые правки. Это должно сработать сейчас.

3. о, парень, ты сделал это! большое спасибо!

4. но я просто отмечаю, что у каждого кодона есть ровно один элемент каждого (ATCG) в другом порядке, может быть какой-то аргумент, позволяющий повторить элемент в каждом элементе, например (AACG или CCTG) ?

5. Просто добавил его. Пробовать снова. Должно быть, он был удален раньше при вставке копии.