R语言 在数据框架中查找带有NA的列和行
一个数据框架由单元格组成,称为数据元素,以行和列的形式排列。一个数据框架可以有属于不同数据类型的数据元素,也可以有缺失值,用NA表示。
方法
- 声明数据框
- 使用函数获取数值来获取NA值
- 存储位置
- 显示结果
以下是R集体中的内置函数,可用于查找数据框中具有NA值的行和列对。 is.na() 函数返回一个True和False值的逻辑向量,以表明哪些相应的元素是NA或不是。接下来是应用which()函数,指示数据元素的位置。下面的代码片断可以用来寻找这种元素的索引位置。
语法
which(is.na(dataframe), arr.ind=TRUE)
例子
# declaring data frame
data_frame = data.frame(
col1 = c(1,NA),
col2 = c(7:8),
col3 = c(NA,NA))
# printing original data frame
print ("Original Data Frame")
print(data_frame)
# extracting positions of NA values
print ("Row and Col positions of NA values")
which(is.na(data_frame), arr.ind=TRUE)
输出
[1] "Original Data Frame"
col1 col2 col3
1 1 7 NA
2 NA 8 NA
[1] "Row and Col positions of NA values"
row col
[1,] 2 1
[2,] 1 3
[3,] 2 3
如果我们没有指定arr,ind=TRUE作为参数,那么将返回按行计算的元素编号。
例子
# declaring data frame
data_frame = data.frame(
col1 = c("A",NA,"B"),
col2 = c(100:102),
col3 = c(NA,NA,9))
# printing original data frame
print ("Original Data Frame")
print(data_frame)
# finding NA values beginning with row1 and col1 as the
# first element. Rows2 and col2 is second element.
print ("Row and Col positions of NA values")
which(is.na(data_frame))
输出
[1] "Original Data Frame"
col1 col2 col3
1 A 100 NA
2 <NA> 101 NA
3 B 102 9
[1] "Row and Col positions of NA values"
[1] 2 7 8
缺失值也可以在一列中单独计算,方法是在上述代码片段中使用dataframe$colname作为参数访问数据框架的特定列。如果在特定的列中没有缺失值,将返回整数(0)作为输出。
例子
# declaring data frame
data_frame = data.frame(
col1 = c("A",NA,"B"),
col2 = c(100:102),
col3 = c(NA,NA,9))
# printing original data frame
print ("Original Data Frame")
print(data_frame)
# extracting positions of NA values
print ("NA values in column 1")
which(is.na(data_framecol1), arr.ind=TRUE)
# extracting positions of NA values
print ("NA values in column 2")
which(is.na(data_framecol2), arr.ind=TRUE)
输出
[1] "Original Data Frame"
col1 col2 col3
1 A 100 NA
2 <NA> 101 NA
3 B 102 9
[1] "NA values in column 1"
[1] 2
[1] "NA values in column 2"
integer(0)