簡體   English   中英

數據框:在某些條件下刪除行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM