如何从R中的数据框中删除基于列中空白的行?

有时,数据没有正确输入到系统中,这就是我们在进行数据清洁之前必须谨慎进行分析的原因。如果数据收集者或被抽样单位未为该问题找到合适的选项,则可能将其输入空白。如果问卷设计不当或错误填写空白,也会发生这种情况。另外,如果我们具有分类变量,则控件类别可能会填充空白,或者我们可能希望有一个空白类别以在以后使用新的类别。无论背后的原因是什么,分析师都将面临此类问题。这些空格实际上是通过在计算机上使用空格键插入的。因此,如果数据框的任何列均具有空白值,则可以通过使用带有单个方括号的子集来删除那些行。

例1

请看以下数据帧:

> set.seed(24)

> x1<-sample(c(" ",1:5),20,replace=TRUE)

> x2<-rnorm(20,4,1.25)

> df1<-data.frame(x1,x2)

> df1

输出结果

  x1   x2

1 2 3.413674

2 1 3.581267

3 2 5.920315

4 4 4.762493

5 1 4.645420

6 5 3.907114

7 1 3.243554

8 1.862944

9 3 3.664134

10 3.189261

11 3.882362

12 4 3.893074

13 4 4.149414

14 3.854630

15 4 2.820216

16 4 3.957828

17 3 3.268216

18 4 4.766064

19 1 5.896403

20 4.821726

删除带空格的行:

示例

> df1[!df1$x1==" ",]

输出结果

  x1   x2

1 2 3.413674

2 1 3.581267

3 2 5.920315

4 4 4.762493

5 1 4.645420

6 5 3.907114

7 1 3.243554

9 3 3.664134

12 4 3.893074

13 4 4.149414

15 4 2.820216

16 4 3.957828

17 3 3.268216

18 4 4.766064

19 1 5.896403

例2

> y1<-sample(c(" ",rpois(5,1)),20,replace=TRUE)

> y2<-rpois(20,5)

> df2<-data.frame(y1,y2)

> df2

输出结果

 y1 y2

1 1 2

2 0 4

3   3

4 10

5 0 6

6 0 5

7 0 7

8 0 3

9 1 1

10 1 6

11 2 7

12 2 5

13 0 5

14   3

15 0 5

16 0 3

17 1 4

18 0 4

19 2 2

20 14

删除带空格的行:

示例

> df2[!df2$y1==" ",]

输出结果

 y1 y2

1 1 2

2 0 4

5 0 6

6 0 5

7 0 7

8 0 3

9 1 1

10 1 6

11 2 7

12 2 5

13 0 5

15 0 5

16 0 3

17 1 4

18 0 4

19 2 2

以上是 如何从R中的数据框中删除基于列中空白的行? 的全部内容, 来源链接: utcz.com/z/343256.html

回到顶部