数据框:删除具有特定条件的行

时间:2015-04-11 16:33:51

标签: r

    A   B   C
1   5   1   3
2   10  2   2
3   15  3   2
4   20  4   2
5   25  5   1
6   30  6   5

嗨,我已经看过了SO而且找不到任何适合我的初学者。我发现的最接近的是聚合,但无法理解所有参数的含义,而且对我的使用似乎有点夸大。

问题:我有上表,如何将其提取出来作为另一个数据框,其中A> 10和C< 5。

2 个答案:

答案 0 :(得分:5)

你可以尝试

df2 <- df1[with(df1, A >10 & C <5),]
df2
#   A B C
#3 15 3 2
#4 20 4 2
#5 25 5 1

或者@Ben Bolker评论说,我们也可以使用subset

df2 <- subset(df1, A > 10 & C <5)

数据

df1 <-  structure(list(A = c(5L, 10L, 15L, 20L, 25L, 30L), B = 1:6,
C = c(3L, 2L, 2L, 2L, 1L, 5L)), .Names = c("A", "B", "C"), 
class = "data.frame", row.names = c("1", "2", "3", "4", "5", "6"))

答案 1 :(得分:0)

对于熟悉MySQL的人来说,另一个解决方案是使用软件包 sqldf

require(sqldf)
sqldf('SELECT *
   FROM df
   WHERE A > 10 and C < 5')

输出为:

     A   B   C
1   15   3   2
2   20   4   2
3   25   5   1