R删除包含特定值的行
所以它有一个csv,我正在读一个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(
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