[英]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.