子集 df 并删除子集 R 的行

Subset a df and remove rows subsetted R

你好,我有一个名为 df 的 df,我已将它子集化到另一个名为 df1 的 df 中。现在我想从 df 中删除 df1 行以获得 df2 = df - df1。我如何在 R 上做到这一点?

df <- read.csv("dataframe.csv")
 
df1 <- df[(df$time <= 0.345),]

尝试:

df2 <- df[(df$time > 0.345), ]

df2 <- df[-which(df$time <= 0.345), ]

如果出于任何原因您必须严格保留所描述的结构,这是一种可能的方法:

df = data.frame(Sample.Name = c(12,13,14,12,13), 
                Target=c("A","B","C","A","A"), 
                Task=c("Sample","Standard","Sample","Standard","Sample"), 
                Value=c(36,34,34,35,36), 
                Mean=c(35,32,36,37,35))

df1 = df[(df$Value <= 34),]

df2 = df[do.call(paste0, df) %in% do.call(paste0, df1),]

df2

结果是这个:

  Sample.Name Target     Task Value Mean
2          13      B Standard    34   32
3          14      C   Sample    34   36

即使不知道第一个子集的逻辑也应该可以工作

library (dplyr) 
df2 <- setdiff(df, df1) 

df2 <- anti_join(df, df1)