подмножество больших кадров данных с условием - PullRequest
0 голосов
/ 30 октября 2018

У меня есть следующий набор данных:

ID  s1  s2  s3
A   0.6 1   0.3
B   3   0.4 0.4
C   3   2   1
D   0   0.3 0.2
E   3   2   0.1

Я хотел бы сохранить строки, которые имеют значение> = 0,5, по крайней мере, два из 3 образцов

Итак, новый фрейм данных будет:

ID  s1  s2  s3
A   0.6 1   0.3
C   3   2   1
E   3   2   0.1

Заранее спасибо

1 Ответ

0 голосов
/ 30 октября 2018

Вы можете сделать

df[rowSums(df[-1] > 0.5) >= 2, ]
#  ID  s1 s2  s3
#1  A 0.6  1 0.3
#3  C 3.0  2 1.0
#5  E 3.0  2 0.1

Мы создаем логическую матрицу df[-1] > 0.5 и проверяем, являются ли по крайней мере два значения в строке TRUE.

Данные

df <- read.table(text="ID  s1  s2  s3
A   0.6 1   0.3
B   3   0.4 0.4
C   3   2   1
D   0   0.3 0.2
E   3   2   0.1", header = TRUE, stringsAsFactor = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...