Как преобразовать матрицу численности в матрицу присутствия-отсутствия при сохранении численности каждого образца - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь преобразовать матрицу численности следующим образом:

введите описание изображения здесь

В такую ​​матрицу:

введите описание изображения здесь

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

Ответы [ 2 ]

0 голосов
/ 15 июня 2018

Спасибо за код.

Однако, кажется, что проблема с кодом, когда матрица выглядит следующим образом:

Population	haplotype1	haplotype2
	1	    2		    0
	2	    1		    4

После запуска кода, я ожидал бы иметь такую ​​матрицу:

Population	haplotype1	haplotype2
	1	    1		    0
	1	    1		    0
	2	    1		    0
	2	    0		    1
	2	    0		    1
	2	    0		    1
	2	    0		    1

Вместо этого я получаю следующее:

Population	haplotype1	haplotype2
	1		1	0
	1		1	0
	2		1	1
	2		1	1
	2		1	1
	2		1	1

Какой код для получения ожидаемой матрицы?

0 голосов
/ 09 июня 2018
library(data.table)
dat=data.frame(population=LETTERS[1:2],halotype1=c(2,0),halotype2=c(0,2))
m=suppressWarnings(setDT(dat)[,lapply(.SD,rep,x = 1),by=population])
replace(m,is.na(m),0)
   population halotype1 halotype2
1:          A         1         0
2:          A         1         0
3:          B         0         1
4:          B         0         1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...