我有一个在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-但我似乎无法弄明白。非常感谢您的帮助!
答案 0 :(得分: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
删除vector中ID的任何行
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