如何删除R数据帧中包含全零的行?

通常,我们会丢失数据,有时如果零不是变量的实际范围,则丢失的数据会填充零。在这种情况下,我们可以删除所有值为零的行。为此,我们可以使用rowSums函数,如果总和大于零,则保留该行,否则忽略该行。

例1

请看以下数据帧-

set.seed(251)

x1<−sample(0:1,20,replace=TRUE)

x2<−sample(0:1,20,replace=TRUE)

df1<−data.frame(x1,x2)

df1

输出结果

x1 x2

1 0 0

2 0 1

3 0 1

4 1 1

5 1 0

6 0 1

7 1 0

8 1 1

9 1 1

10 0 0

11 0 1

12 1 0

13 1 0

14 1 1

15 0 1

16 1 1

17 1 1

18 1 1

19 1 1

20 0 0

删除全零的行-

df1[rowSums(df1[])>0,]

输出结果

x1 x2

2 0 1

3 0 1

4 1 1

5 1 0

6 0 1

7 1 0

8 1 1

9 1 1

11 0 1

12 1 0

13 1 0

14 1 1

15 0 1

16 1 1

17 1 1

18 1 1

19 1 1

例2

y1<−sample(c(0,5),20,replace=TRUE)

y2<−sample(c(0,2),20,replace=TRUE)

df2<−data.frame(y1,y2)

df2

输出结果

y1 y2

1 5 0

2 0 2

3 0 2

4 0 0

5 5 2

6 5 0

7 5 0

8 0 2

9 0 2

10 5 0

11 0 0

12 0 0

13 5 0

14 0 0

15 5 2

16 5 0

17 0 0

18 0 2

19 5 2

20 0 0

删除全零的行-

df2[rowSums(df2[])>0,]

输出结果

y1 y2

1 5 0

2 0 2

3 0 2

5 5 2

6 5 0

7 5 0

8 0 2

9 0 2

10 5 0

13 5 0

15 5 2

16 5 0

18 0 2

19 5 2

例子3

z1<−rep(0,20)

z2<−sample(c(0,1),20,replace=TRUE)

df3<−data.frame(z1,z2)

df3

输出结果

z1 z2

1 0 0

2 0 0

3 0 0

4 0 0

5 0 0

6 0 1

7 0 1

8 0 1

9 0 1

10 0 1

11 0 1

12 0 0

13 0 0

14 0 1

15 0 1

16 0 0

17 0 1

18 0 1

19 0 1

20 0 1

删除全零的行-

df3[rowSums(df3[])>0,]

输出结果

z1 z2

6 0 1

7 0 1

8 0 1

9 0 1

10 0 1

11 0 1

14 0 1

15 0 1

17 0 1

18 0 1

19 0 1

20 0 1

以上是 如何删除R数据帧中包含全零的行? 的全部内容, 来源链接: utcz.com/z/355621.html

回到顶部