У меня есть фрейм данных, который выглядит примерно так
sampleDF <- data.frame(entrezgene_id = c(rep(1, 20), rep(10, 25), rep(100, 5)),
ensembl_gene_id = c(rep("a", 7), rep("b", 8), rep("c", 7),
rep("d", 8), rep("e", 15),
rep("f", 2), rep("g", 2), rep("h", 1)),
transcript_length = sample(500:10000, 50))
Я хотел бы иметь возможность свернуть его примерно так
entrezgene_id ensembl_gene_id medianTranscriptLength
1 a 5795
1 b 4981
1 c 6526
10 c 2307
10 d 5044
10 e 6069
100 f 8669
100 g 6570.5
100 h 6997
, где он перебирает каждый элемент в первом столбце и для каждого элемента во втором столбце вычисляет медианное значение соответствующих значений в третьем столбце. Я сделал это сейчас, создав еще один фрейм данных, где второй столбец является ключевым. Но затем из-за того, что дубликаты во втором столбце перекрываются с несколькими записями первого столбца (например, см. Ensembl_gene_id «c» в моем примере), мне пришлось создать еще один фрейм данных, в котором я сгладил entrezgene_id столбец. Я уверен, что должен быть более короткий способ сделать это. Это кажется достаточно простым, но я не знаю, как это сделать. Буду очень признателен за помощь.
Спасибо