有人可以准确描述(部分理解)以下行的内容吗?
which(!is.na(table[1,]))
1)table[1,]
=?第1行或第1列或名为“table”的文件?
2)!is.na
=为什么!
? (is.na
用于消除NA
但!
的原因?通常,!
代表负数(不等于)。
答案 0 :(得分:1)
如果我们将功能拆分成碎片,
table[1,]
对数据集的第一行进行子集
is.na(table[1,]
检查第一行是否有NA值。它将返回逻辑元素的向量(NA为TRUE,非NA为FALSE)。
!
是否定运算符。因此,它会将TRUE转换为FALSE,反之亦然,为TRUE值提供非NA的逻辑元素向量
!is.na(table[1,]
最后which
包装器给出了TRUE值的数字索引
为了演示一个例子,我们说matrix
m1 <- matrix(c(NA, 0, 1, 2), 2, 2)
然后,如果我们按照步骤
m1[1,] #returns the 1st row as a vector
#[1] NA 1
is.na(m1[1,]) #returns TRUE for NA
#[1] TRUE FALSE
!is.na(m1[1,]) #returns TRUE for non-NA elements
#[1] FALSE TRUE
which(!is.na(m1[1,]))
#[1] 2