2017-10-19 59 views
0

我有可能是一個非常簡單的問題來解決在R中,但我一直在掙扎了一段時間沒有找到一個適當的解決方案。從數據框中刪除指定級別的因子

從下面的數據框中,我只需要完全刪除任何包含'U'爲Sex的行,同時也從Sex因子中刪除級別'U'。而且我還希望能夠通過指定ID號的矢量來刪除我選擇的任何ID。我的實際數據集比這大得多。

datf <- read.table(text = "ID Sex Mor SITE 
          110 F W 1 
          111 M W 2 
          112 M B 4 
          135 F W 3 
          556 M B 1 
          557 U B 1 
          558 M W 2", 
        header = TRUE) 

我想我將能夠工作了這一點,但我已經試過這個網站上提出了多種方法,如droplevels-,但我似乎無法弄清楚。非常感謝您的幫助!

+0

什麼'R'碼ID你嘗試過任何行? – Nate

回答

3
  • Sex == 'U'刪除行和下降級

    datf <- droplevels(datf[!datf$Sex == 'U',]) 
    str(datf) 
    
    'data.frame': 6 obs. of 4 variables: 
    $ ID : int 110 111 112 135 556 558 
    $ Sex : Factor w/ 2 levels "F","M": 1 2 2 1 2 2 
    $ Mor : Factor w/ 2 levels "B","W": 2 2 1 2 1 2 
    $ SITE: int 1 2 4 3 1 2 
    
  • 刪除其中矢量

    datf <- datf[!(datf$ID %in% c(110, 558)),] 
    datf 
    
        ID Sex Mor SITE 
    2 111 M W 2 
    3 112 M B 4 
    4 135 F W 3 
    5 556 M B 1 
    
+0

非常感謝! – RobP

相關問題