繁体   English   中英

从数据框中删除指定级别的因子行

[英]remove rows of specified levels of factor from dataframe

我有一个在R中解决的非常简单的问题,但是我一直在苦苦挣扎一段时间,却没有找到合适的解决方案。

从以下数据框中,我只需要完全删除包含“ U”表示“性别”的任何行,同时还删除“性”因子中的“ 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,但我似乎无法弄清楚。 非常感谢您的帮助!

  • 删除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 
  • 删除向量中ID所在的任何行

     datf <- datf[!(datf$ID %in% c(110, 558)),] datf ID Sex Mor SITE 2 111 MW 2 3 112 MB 4 4 135 FW 3 5 556 MB 1 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM