Создание подмножеств самых высоких 25% значений с использованием их в диаграмме Венна

Вот пример моих данных с разделителями-пробелами, в которых всего 796 строк:

         Locus     GSL Barents Ireland
1 cgpGmo-S1001 0.25805 0.00339 0.02252
2 cgpGmo-S1006 0.11041 0.04298 0.06036
3 cgpGmo-S1007 0.24085 0.08937 0.03964
4 cgpGmo-S1008 0.07428 0.10824 0.01802
5 cgpGmo-S1009 0.08524 0.01471 0.00000
6 cgpGmo-S1013 0.03547 0.05091 0.00991

что я пытаюсь сделать, так это выделить верхний квартиль (25% для каждой из трех категорий, а затем нарисовать диаграмму Венна, показывающую количество локусов (строк), значения которых входят в верхние 25% для 1, 2 или все три категории.

Я вполне уверен, что могу использовать диаграмму Венна пакета для создания диаграмм, но я не знаю, как генерировать списки локусов, которые попадают в верхние 25% каждой категории, чтобы использовать их в качестве объектов для Венна.


person Oceans37    schedule 24.09.2015    source источник
comment
В пакете dplyr есть полезная функция top_n().   -  person lawyeR    schedule 24.09.2015


Ответы (1)


Простой случай — отсортируйте и получите самые низкие 25%:

a <- seq (100,1,-1)
b <- seq (100,1,-1)
d <- data.frame(cbind(col1=a, col2=b))
sort(d$col1)[1:(length(d$col1)/4)]

отсортирует и даст вам 25% самых низких значений.

(или чтобы избежать сортировки [может быть интенсивным использование памяти], используйте order:

d$col1[order(d$col1)][1:(length(d$col1)/4)]

)

person rbm    schedule 24.09.2015
comment
Готово. Извините, я новичок на этом сайте и забыл про систему голосов. - person Oceans37; 24.09.2015