子集 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)
你好,我有一个名为 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)