删除包含特定数据的行

koe*_*bro 4 r dataframe

在我的数据框中,第一列是一个因素,我想删除具有某个factorname值的(当值存在时).我试过了:

df <- df[-grep("factorname",df$parameters),]
Run Code Online (Sandbox Code Playgroud)

当目标因子名称存在时,哪种方法很有效.但是,如果不存在factorname,则此命令会破坏数据帧,使其保留0行.所以我尝试过:

df <- df[!apply(df, 1, function(x) {df$parameters == "factorname"}),]
Run Code Online (Sandbox Code Playgroud)

这不会删除违规行.我如何测试的存在factorname并删除行,如果factorname存在?

42-*_*42- 6

你可以使用:

df[ which( ! df$parameter %in% "factorname") , ]
Run Code Online (Sandbox Code Playgroud)

(%in%因为它会更好地概括为多个排除标准.)也可能:

df[ !grepl("factorname", df$parameter) , ]
Run Code Online (Sandbox Code Playgroud)

  • 不只是`df [df $ parameters!="factorname",]`就够了吗?我错过了什么增加的复杂性? (2认同)