Удалить все строки ниже определенного порога в R - PullRequest
0 голосов
/ 12 февраля 2020

fmcountdata1 table У меня есть матрица данных, и я хотел удалить все строки, значения которых ниже установленного порогового значения 10. Я проверил другие записи здесь, и они, кажется, не работать в моем случае в R по некоторым причинам. Я все еще относительно новичок в R, так что теперь я могу разобраться с этим. Что бы вы порекомендовали мне сделать, чтобы выполнить sh this?

Например, я бы хотел, чтобы строка «MIR6859-1» была полностью удалена, так как она имеет данные счетчика ниже 10 для каждого условия .

Вот код, который я пробовал до сих пор, но я продолжаю получать ошибку "Ошибка в данных <10: сравнение (3) возможно только для атомов c и типов списков «</p>

или объект столбца с именем« KOA1 »не найден с помощью метода подмножества.

enter code here fmcountdata1 <- mergecountdata1 [! (Mergecountdata1 $ KOA1 <10),] <code>enter code here fmcountdata1 <- <code>enter code here mergecountdata1 [! apply (данные <10,1, любое, na.rm = TRUE),] <code>enter code here fmcountdata1 <- mergecountdata1 <code>enter code here подмножество (fmcountdata1, KOA1 <10) </p>

Вот фрагмент набора данных:

KOA1 KOA2 KOA3 KOA4 KOB1 KOB2 KOB3 KOB4 CON1 CON2 CON3 CON4 DDX11L1 0 0 0 0 0 0 0 0 0 0 0 0 WASH7P 16 28 25 54 28 26 21 40 17 30 19 39 MIR6859-1 4 1 1 3 1 0 0 0 0 1 0 1 MIR1302-2HG 0 1 0 1 1 0 0 1 0 0 0 0 MIR1302-2 0 0 0 0 0 0

ул. мои данные set: chr [1: 59412, 1:12] "0" "16" "4" "0" ... - attr (, "dimnames") = список из 2 .. $: chr [1: 59412] "DDX11L1" "WASH7P" "MIR6859-1" "MIR1302-2HG" ... .. $: chr [1:12] "KOA1" "KOA2" "KOA3" "KOA4" ... - attr (, "имена") = chr [1: 712944] NA NA NA NA ...

1 Ответ

0 голосов
/ 12 февраля 2020

Это то, что вы имели в виду?

set.seed(12)
data <- data.frame(v1=sample(c(1:20,NA), 10),
                   v2=sample(c(1:20,NA), 10))
data
   v1 v2
1   2 18
2  16  6
3  14 12
4   5 10
5  18  7
6  12 16
7  NA 13
8   8  8
9  11  4
10 15 14

# Remove rows of data if *any* column in that row contains a value<10
data.any <- data[!apply(data<10,1,any,na.rm=TRUE),]
data.any # rows 3,6,7 and 10 remain
   v1 v2
3  14 12
6  12 16
7  NA 13
10 15 14

# Remove rows of data if *all* columns in that row contains a value<10
data.all <- data[!apply(data<10,1,all,na.rm=TRUE),]
data.all # all but row 8 remain
   v1 v2
1   2 18
2  16  6
3  14 12
4   5 10
5  18  7
6  12 16
7  NA 13
9  11  4
10 15 14
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...