[英]Data frame: Remove rows with certain conditions
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。
你可以試試
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"))
對於那些熟悉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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.