#r
#r
Вопрос:
У меня есть несколько генов для каждого из них, у меня есть, сколько у них клональных или субклональных мутаций, как показано ниже
# A tibble: 6 x 3
gene_name clonal subclonal
<chr> <int> <int>
1 APC 3 1
2 ARID1A 5 2
3 ARID1B 18 7
4 ARID2 16 2
5 CCDC102B 100 30
6 CCND1 2 0
>
Для каждого гена, например APC, я хочу что-то вроде приведенного ниже
Есть ли способ сделать это в R?
Большое вам спасибо
Комментарии:
1. APC — это ген, для которого у нас есть 3 клональные мутации и 1 субклональная мутация
2. Да, именно так
Ответ №1:
Вот вариант, при котором мы преобразуем в «длинный» формат с pivot_longer
помощью, затем разворачиваем строки на основе числового числа в столбце «значение» и создаем Yes_no
из проверки, является ли значение «клональности» «клональным»
library(dplyr)
library(tidyr)
df1 %>%
pivot_longer(cols = clonal:subclonal, names_to = 'Clonality') %>%
uncount(value) %>%
mutate(Yes_no = case_when(Clonality == 'clonal' ~ 'Yes', TRUE ~ 'No'))
-вывод
# A tibble: 186 x 3
# gene_name Clonality Yes_no
# <chr> <chr> <chr>
# 1 APC clonal Yes
# 2 APC clonal Yes
# 3 APC clonal Yes
# 4 APC subclonal No
# 5 ARID1A clonal Yes
# 6 ARID1A clonal Yes
# 7 ARID1A clonal Yes
# 8 ARID1A clonal Yes
# 9 ARID1A clonal Yes
#10 ARID1A subclonal No
# … with 176 more rows
данные
df1 <- structure(list(gene_name = c("APC", "ARID1A", "ARID1B", "ARID2",
"CCDC102B", "CCND1"), clonal = c(3L, 5L, 18L, 16L, 100L, 2L),
subclonal = c(1L, 2L, 7L, 2L, 30L, 0L)),
class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))