检查R中行中前3个非NA元素中是否存在零

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查R中行中前3个非NA元素中是否存在零相关的知识,希望对你有一定的参考价值。

我试图删除前3个非NA元素中包含零的数据框中的行。

例如:

> c <- matrix(c(NA,NA,4,5,0,7,0,NA,NA,NA,NA,8,9,10,0,4,5,0,NA,NA), ncol=5, nrow = 4, byrow=T)
> c
     [,1] [,2] [,3] [,4] [,5]
[1,]   NA   NA    4    5    0
[2,]    7    0   NA   NA   NA
[3,]   NA    8    9   10    0
[4,]    4    5    0   NA   NA

我希望有一个输出如下:TRUE TRUE FALSE TRUE,以便在前3个非NA元素中创建没有零的行的子集。

有人有一个简单的解决方案吗?

答案

我们可以用apply做到这一点。循环遍历行,对非NA元素进行子集化,检查其中是否包含0

apply(c, 1, function(x) 0 %in% x[!is.na(x)][1:3])
#[1]  TRUE  TRUE FALSE  TRUE

以上是关于检查R中行中前3个非NA元素中是否存在零的主要内容,如果未能解决你的问题,请参考以下文章

如何找到至少有k个非零元素的列的索引?

如何使用R中的createFolds函数处理lm.fit(0个非na情况)中的错误

JavaScript单行代码,也就是代码片段

如何优化C ++代码的以下片段 - 卷中的零交叉

js判断一个值是不是存在于一个js数组中

js判断一个值是不是存在于一个js数组中