在 R 中按行检查前 3 个非 NA 元素中是否存在零
Checking the presence of zeros in the first 3 non NA elements by row in R
我正在尝试删除数据框中前 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
我希望得到如下输出:
真 真 假 真
为了创建在前 3 个非 NA 元素中没有带零的行的子集。
有人对此有简单的解决方案吗?
我们可以用 apply
做到这一点。遍历行,对非 NA 元素进行子集化,检查其中是否有 0
apply(c, 1, function(x) 0 %in% x[!is.na(x)][1:3])
#[1] TRUE TRUE FALSE TRUE
我正在尝试删除数据框中前 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
我希望得到如下输出: 真 真 假 真 为了创建在前 3 个非 NA 元素中没有带零的行的子集。
有人对此有简单的解决方案吗?
我们可以用 apply
做到这一点。遍历行,对非 NA 元素进行子集化,检查其中是否有 0
apply(c, 1, function(x) 0 %in% x[!is.na(x)][1:3])
#[1] TRUE TRUE FALSE TRUE