हटाने/रखने विशिष्ट स्तंभों पर आधारित उनकी सामग्री में अनुसंधान

0

सवाल

df:वहाँ वास्तव में कर रहे हैं के हजारों के दोनों वेरिएंट और आईडी

     variant1 variant2 variant3 variant4
ID1   0/0         0/0      0/0     0
ID2   0/0         0/0      0/0     0
ID3   0/0         0/0      1/1     0
ID4   0/0         0/0      0/0     1
ID5   0/1         0/0      0/0     0

वांछित परिणाम:

     variant1 variant2 variant3 variant4


ID3   0/0         0/0      1/1     0
ID4   0/0         0/0      0/0     1
ID5   0/1         0/0      0/0     0

मैं केवल करने के लिए रखने के लिए पंक्तियों यदि वे 0/1, 1/1 या 1 में उन्हें.

मैं करने की कोशिश की है dt[grepl(0/1", df),] प्रत्येक यात्रा के लिए, लेकिन यह नहीं करता है काम करने लगते हैं.

वहाँ है एक आधार आर या डेटा.टेबल की तरह यह कर रही है?

data.table r subset
2021-11-22 17:04:15
1

सबसे अच्छा जवाब

1

हम का उपयोग कर सकते हैं if_any से dplyr

library(dplyr)
dt %>%
    filter(if_any(everything(), ~ . %in% c("0/1", "1/1", "1")))

-उत्पादन

    variant1 variant2 variant3 variant4
ID3      0/0      0/0      1/1        0
ID4      0/0      0/0      0/0        1
ID5      0/1      0/0      0/0        0

का उपयोग कर या base R

dt[ Reduce(`|`, lapply(dt, `%in%`, c("0/1", "1/1", "1"))),]

-उत्पादन

    variant1 variant2 variant3 variant4
ID3      0/0      0/0      1/1        0
ID4      0/0      0/0      0/0        1
ID5      0/1      0/0      0/0        0

एक ही विकल्प में इस्तेमाल किया जा सकता data.table

library(data.table)
setDT(dt)[dt[, Reduce(`|`, lapply(.SD, `%in%`, c("0/1", "1/1", "1")))]]

डेटा

dt <- structure(list(variant1 = c("0/0", "0/0", "0/0", "0/0", "0/1"
), variant2 = c("0/0", "0/0", "0/0", "0/0", "0/0"), variant3 = c("0/0", 
"0/0", "1/1", "0/0", "0/0"), variant4 = c("0", "0", "0", "1", 
"0")), row.names = c("ID1", "ID2", "ID3", "ID4", "ID5"), class = "data.frame")
2021-11-22 17:16:10

समय लेने के लिए धन्यवाद उत्तर देने के लिए, इस काम वास्तव में अच्छी तरह से. क्या करता है "|" समारोह में कम मतलब है? करता है ".एसडी" में डेटा.तालिका का मतलब लागू करने के लिए पूरी तालिका?
tacrolimus

@tacrolimus के | है या ऑपरेटर. यह जाँच करता है के लिए elementwise में या प्रत्येक के वेक्टर सूची से उत्पादन की lapply और एक एकल के वेक्टर सही/गलत । यानी अगर वहाँ है एक एकल सच में एक ही स्थिति में, यह सही है या फिर गलत । 2) .SD - सबसेट का डेटा.तालिका. अगर हम निर्दिष्ट नहीं करते कुछ भी में .SDcols, यह पूरे स्तंभ
akrun

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में