【发布时间】:2023-02-01 01:49:46
【问题描述】:
我面临一个我无法完全弄清楚的问题,我希望有人能够帮助我解决这个问题。它可能超级简单,但我正在挣扎,我花了太多时间来解决这个问题,以至于我无法再清楚地思考了。
我有一个矩阵,假设有 20 行和 5 列。有时我在第 1 列中有 NA。其他时候在第 1 列和第 2 列,或只有 2 列,或 2 列和 4 列等。
我想获取仅缺少第 1 列中的值的观察结果的行名称。然后我想寻找组合,例如只缺少第 1 列和第 2 列的组合。
这是一些示例代码:
set.seed(39)
df <- matrix(rnorm(100),nrow=20, ncol = 5)
df <- apply (df, 2, function(x) {x[sample(c(1:20), floor(20/8))] <- NA; x} )
auxmatrix <- is.na(df)
到目前为止,我的方法是这样的:
which(ifelse(auxmatrix[,1] == T, 1, 0) == 1)
这旨在寻找仅缺少第 1 列中的值的观察结果。 但是,这显然也给了我那些缺少第 1 列和(示例)第 2 列的观察结果。
我如何表述它忽略那些缺少 1 和 2 的行的语句?
之后我还想寻找组合,例如:
which(ifelse(auxmatrix[,3] == T & auxmatrix[,4] == T, 1, 0) == 1)
找到第 3 列和第 4 列中有 NA 的观察结果。当然,他的 then 也给了我错误的观察结果,因为可能存在 3,4 和 5 缺失的观察结果。
我希望我能正确表达我的问题。我非常感谢你的想法。
最好的祝福, 托尼13
【问题讨论】:
-
那么,以您的示例为例,您的预期输出是什么?
标签: r matrix na logical-operators