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。
答案 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