说我有以下通用数据
A <- c(1,1,1,1,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5)
B <- c(1,1,2,1,2,1,2,3,2,3,3,4,4,3,2,3,3,4,4,5,4,4,5,5,5)
C <- c(1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0)
Data <- data.frame(A,B,C)
然后我创建了以下向日葵图
库(动物园)
Data$F = ifelse(Data$C==1,Data$A,NA)
Data$F = na.locf(Data$F)
Data$G = ifelse(Data$C==1,NA,Data$B)
sunflowerplot(Data$G ~ Data$F,
main = "Flower_plot",
xlab = "B value where C==1",
ylab = "B value where C==0",
size = 0.25, cex.lab = 1.3, mgp = c(2.3,1,0))
当我们查看情节时,我们想要删除一些数据。
我们要删除C = 1和B = 3的位置,C = 0和B = 4的数据
我尝试过这样的事情
library(dplyr)
Data_cleaned <- Data %>%
group_by(C) %>%
filter(rm(B==4[A==3 & C==0]))
答案 0 :(得分:3)
试试这个:
Data_cleaned <- Data %>%
filter(!(B==4 & A==3 & C==0))
!
表示NOT
- 否定结果。
答案 1 :(得分:3)
zx8754
回答很好。我只是添加一个可能data.table
的快速解决方案(二进制连接),并且如果要在相同的列上执行不同的子集操作,将允许您避免指定列名称(<-
将保留关键)
library(data.table)
setkey(setDT(Data), A, B, C)
Data[!J(3, 4, 0)]