матрица подмножества из списка

83
8

Я пытаюсь подмножить матрицу, где имена ростов в этом формате - "chr8: 56979853-56987069_RPS20_ENSG00000008988.5"

И я попытался подойти так;

include_list <- c("RPS20", "VIL1", "KRT20", "CLDN7")
goi <- subset(mat2, rownames(mat2) %like% include_list)

Однако он ошибается, поскольку шаблон принимает только первый элемент. Есть ли способ подмножества списка элементов. Любая помощь приветствуется.

спросил(а) 2018-02-01T20:03:00+03:00 2 года, 10 месяцев назад
1
Решение
59

out <- c()
for (x in include_list) {
check_each <- rownames(mat2)[rownames(mat2) %like% include_list]
out <- c(out, check_each)
}
goi <- subset(mat2, rownames(mat2) %in% out)

обратите внимание, что% like% - это пакет DescTools, или вы можете использовать базу R:

out <- c()
for (x in include_list) {
check_each <- rownames(mat2)[grepl(x, rownames(mat2))]
out <- c(out, check_each)
}
goi <- subset(mat2, rownames(mat2) %in% out)

ответил(а) 2018-02-01T20:06:00+03:00 2 года, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема