R删除包含特定值的行

R删除包含特定值的行,r,dataframe,R,Dataframe,所以它有一个csv,我正在读一个R数据框,它看起来像这样 clientx,clienty,screenx,screeny 481,855,481,847 481,784,481,847 481,784,481,847 879,292,879,355 第一行当然是标题。因此,我们有4列,其中包含数字数据,范围从1到4位。集合中没有负数,只有-1表示缺少值。 我想删除4列中任何一列中包含-1的每一行 提前感谢您的帮助直接方式: df <- df[!apply(df, 1, function(

所以它有一个csv,我正在读一个R数据框,它看起来像这样

clientx,clienty,screenx,screeny
481,855,481,847
481,784,481,847
481,784,481,847
879,292,879,355
第一行当然是标题。因此,我们有4列,其中包含数字数据,范围从1到4位。集合中没有负数,只有-1表示缺少值。 我想删除4列中任何一列中包含-1的每一行

提前感谢您的帮助

直接方式:

df <- df[!apply(df, 1, function(x) {any(x == -1)}),]

这些应该有用,我没有检查。请始终尝试提供一个可复制的示例来说明您的问题。

最有效的方法是使用
read.csv()
na.strings
参数将所有
-1
值编码为
na
,然后删除不完整的案例


步骤1:
read.csv()中设置
na.strings=-1


可能的重复:
df[df==-1] <- NA
df <- na.omit(df)
x <- read.csv(text="
clientx,clienty,screenx,screeny
481,855,481,847
481,784,481,847
481,784,481,847
-1,292,879,355", header=TRUE, na.strings=-1)

x
clientx clienty screenx screeny
1     481     855     481     847
2     481     784     481     847
3     481     784     481     847
4      NA     292     879     355
x[complete.cases(x), ]
  clientx clienty screenx screeny
1     481     855     481     847
2     481     784     481     847
3     481     784     481     847

na.omit(x)
  clientx clienty screenx screeny
1     481     855     481     847
2     481     784     481     847
3     481     784     481     847