R语言 查找矢量中第一个非NA值的索引位置

R语言 查找矢量中第一个非NA值的索引位置

一个原子向量包含属于同一数据类型的元素。它也可能包含缺失或不确定的值,在这个向量的范围内的任何索引。这些NA值可以在R中使用标准的索引方法进行访问。在这篇文章中,我们将看到如何在R编程语言中找到向量中第一个非NA值的索引位置。

方法1:使用is.na()和 which() 方法

首先在原子向量上应用否定的is.na()方法,返回一个相同长度的布尔向量,其中TRUE表示该值为非NA,FALSE表示缺少或NA值。接下来是应用which()方法,返回非NA值的索引。然后应用聚合函数min()来获得所有索引中的第一个或最小的元素。

代码

# declaring a vector
vec <- c(NA, NA, 2, NA, 5, 7)
print ("Original Vector")
print (vec)
  
# getting indexes of all the non na elements
non_na_vec <- which(!is.na(vec))
  
# determining the minimum from these indices
first_non_na <- min(non_na_vec)
print ("First non-na index")
print (first_non_na)

输出

[1] "Original Vector"
[1] NA NA  2 NA  5  7
[1] "First non-na index"
[1] 3

如果向量不包含任何非缺失的值,那么这种方法会抛出一个异常并返回Inf

警告信息。

在min(non_na_vec)中:没有非缺失参数给min;返回Inf

方法2:which.max()方法

which.max()方法返回在向量中遇到的第一个非na值的参数。该方法在R中的语法如下:

which.max(vec)

代码

# declaring a vector
vec <- c(NA, 1, 3, NA, 2, NA, 5, 7)
print ("Original Vector")
print (vec)
  
# getting indexes of all the non na elements
non_na_vec <- which.max(!is.na(vec))
print ("First non-na index")
print (non_na_vec)

输出

[1] "Original Vector"
[1] NA  1  3 NA  2 NA  5  7
[1] "First non-na index"
[1] 2

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程