Я пытаюсь сделать простую гистограмму, но не могу разобраться, как очистить эти данные и подготовить их к графику.
Я хочу применить функцию к нескольким столбцам вR, но я также хочу, чтобы он обрабатывал дублированные строки.
В конечном итоге я хочу вернуть простой фрейм данных, который выглядит следующим образом:
Tissue Number_of_hits
tissue1 3
tissue2 1
tissue3 3
Я сосу на создание игрушечных данных.Вот моя попытка примерно
df <- data.frame(gene = c("A", "A", "B", "C", "D", "D"),
tissue1 = sample(x = 0:6, size = 6),
tissue2 = sample(x = 0:6, size = 6),
tissue3 = sample(x = 0:6, size = 6)
)
gene tissue1 tissue2 tissue3
1 A 6 4 6
2 A 3 1 2
3 B 4 6 0
4 C 1 2 3
5 D 5 5 1
6 D 0 0 5
Итак, я хочу сделать следующее:
- посчитать, сколько раз ткань1 имеет ген> = 3.
- Если, например, ген A показывает два попадания для ткани1> = 3, считайте его только как один.
- Если, например, ген D имеет только одно попадание, просто считайте его как один.
Функция применения, показанная ниже, kindof помогает здесь фильтровать события, которые соответствуют моему отсечению (здесь это .15 вместо 3).
for (column in test$tissue1){
column <- lapply(column, function(counts) if (counts >= 0.15) TRUE else FALSE)
}
Очевидно, что мой цикл for не работаетздесь, и я не могу просто переназначить переменную столбца, как я бы надеялся.
Я застрял здесь.Если кто-то может пролить свет на это, пожалуйста, дайте мне знать.
Есть ли способ использовать dplyr / tidyverse для решения этой проблемы?