从数据框中删除特定行

19

可能重复:
从数据框中删除特定行

假设我有一个由许多行组成的数据框,如下所示:

X <- data.frame(Variable1=c(11,14,12,15),Variable2=c(2,3,1,4))

Variable1    Variable2
11           2
14           3
12           1
15           4

现在,假设我想创建一个新的数据框,它是原来数据框的副本,只是我将所有Variable1具有某个数值的行都删除。假设这些数字存储在向量v中。

也就是说,如果v包含11和12这两个数字,那么新的数据框应该是这样的:

Variable1    Variable2
14           3
15           4

我已经搜索了一段时间的互联网,试图找出如何做这样的事情。主要是我只需要一些类似于 removeRow(dataframe, row) 这样的命令。


9
你有在 Stack Overflow 上搜索过这个问题吗?答案肯定涉及使用 %in% 和提取运算符“[”,但我打赌这个问题已经被回答了。例如,使用你的问题标题进行搜索时出现的第一个:https://dev59.com/kmw05IYBdhLWcg3wpTYV - IRTFM
4
这是一个相当常见的R语言操作。这里有一个提示,不要试图删除你不想要的行,尝试创建一个包含你想要的行的新数据框架。 - Chris
你应该发布一个可重现的例子。dput是你的好朋友! - Zach
1个回答

66
 X <- data.frame(Variable1=c(11,14,12,15),Variable2=c(2,3,1,4))
> X
  Variable1 Variable2
1        11         2
2        14         3
3        12         1
4        15         4
> X[X$Variable1!=11 & X$Variable1!=12, ]
  Variable1 Variable2
2        14         3
4        15         4
> X[ ! X$Variable1 %in% c(11,12), ]
  Variable1 Variable2
2        14         3
4        15         4
你可以按照自己的喜好进行函数化处理。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接