【发布时间】:2017-10-21 20:02:42
【问题描述】:
我使用一个数据集,如果标签为 1,并且有一个标签为 3 的 ID 号,我想删除一行。编辑:标签值只能是:NA、1、2 或 3。ID 号是不同的,如果存在标签 1、标签 2 和标签 3,则只能找到 3 次。
> dat1 = data.frame(id=c(15399,15404,15405,15407,15407,15407,15403), tag=c(NA,NA,1,1,2,3,1))
> dat1
id tag
1 15399 NA
2 15404 NA
3 15405 1
4 15407 1
5 15407 2
6 15407 3
7 15403 1
我需要退货:
> dat1
id tag
1 15399 NA
2 15404 NA
3 15405 1
5 15407 2
6 15407 3
7 15403 1
有人可以帮我吗?我只知道如何删除标签为 3 的所有 ID:
> subset(dat1,!dat1$id %in% dat1$id[dat1$tag == 3])
id tag
1 15399 NA
2 15404 NA
3 15405 1
7 15403 1
【问题讨论】:
-
dat2 <- dat1[dat1$tag!="1",]为什么不这样呢? (为此,您必须避免/更改 NA 值) -
正在尝试从数据框中删除重复的行?
-
@jyr 这也将删除我想保留的第 3 行。如果存在与标签 3 具有相同 ID 号的行,我只想删除包含标签 1 的行。
-
@BidishaPyne 以某种方式是的:如果有一个带有标签 1 的 id 和另一个带有标签 3 的 id,我只对使用该 id 号保留标签 3 感兴趣。
-
@akrun 感谢您的关注。我将编辑帖子。
标签: r conditional row subset