Я пытаюсь отфильтровать строки в моем кадре данных (MainData) на основе критериев p-значений в другом фрейме данных (PvalueData). Итак, я хочу: если более 50% столбцов в строке имеет значение p> 0.05 (PvalueData), то эта конкретная строка будет удалена из основного фрейма данных (MainDatA).Как удалить строки в фрейме данных на основе значений другого фрейма данных
Позволяет сказать, вот данные у меня есть:
MainData:
C1 C2 C3 C4 C5
Gene1 70 54 54 75 75
Gene2 23 18 16 54 15
Gene3 43 93 90 43 92
Gene4 32 50 23 13 45
Gene5 44 53 46 34 47
Gene6 42 34 53 85 43
Gene7 49 55 67 49 89
Gene8 25 45 49 34 35
Gene9 19 16 54 53 94
PvalueData:
C1 C2 C3 C4 C5
Gene1 0.04 0.01 0.01 0.01 0.01
Gene2 0.01 0.01 0.01 0.02 0.01
Gene3 0.01 0.07 0.09 0.01 0.06
Gene4 0.01 0.03 0.06 0.01 0.02
Gene5 0.04 0.01 0.07 0.08 0.01
Gene6 0.09 0.07 0.01 0.06 0.06
Gene7 0.10 0.07 0.01 0.01 0.06
Gene8 0.01 0.01 0.02 0.01 0.01
Gene9 0.09 0.01 0.07 0.08 0.06
Так что мой результат файл должен выглядеть следующим образом:
Результат:
C1 C2 C3 C4 C5
Gene1 70 54 54 75 75
Gene2 23 18 16 54 15
Gene4 32 50 23 13 45
Gene5 44 53 46 34 47
Gene8 25 45 49 34 35
я попробовать что-то вроде этого:
check = if (PvalueData[!rowSums(PvalueData>thres) > ncol(PvalueData)*.5], MainData)
Но не может реально работать его.
добавить 'dput' ваших данных или, например, данные – user5249203