数据帧R中的grep

数据帧R中的grep,r,R,我想在数字数组的特定列中搜索所有非NA的结果。我用NA填充as 12,12,12 dim阵列,然后填充它。现在我想搜索第12列中的值,所以所有不是NA的东西。我确信有可能使用grep或类似的东西 谢谢这里是一个3x3x3阵列的示例。为每个数组选择第三列,然后使用is.NA查找非NA元素。为了返回数组第三维的第三列,我们使用m[,3,]。这将返回一个二维数组,因此我们可以在此数组上使用apply来选择非NA元素。很糟糕的解释,但很简单 # Reproducible data set.seed(1

我想在数字数组的特定列中搜索所有非NA的结果。我用NA填充as 12,12,12 dim阵列,然后填充它。现在我想搜索第12列中的值,所以所有不是NA的东西。我确信有可能使用grep或类似的东西


谢谢

这里是一个3x3x3阵列的示例。为每个数组选择第三列,然后使用is.NA查找非NA元素。为了返回数组第三维的第三列,我们使用m[,3,]。这将返回一个二维数组,因此我们可以在此数组上使用apply来选择非NA元素。很糟糕的解释,但很简单

#  Reproducible data
set.seed(1234)
data <- sample( c( rep( NA , 7 ) , 1:20 ) )
m <- array( data , dim = c(3,3,3) )
#, , 1
#
#     [,1] [,2] [,3]
#[1,]   NA    8   NA
#[2,]   10   13   NA
#[3,]    9   17    6
#
#, , 2
#
#     [,1] [,2] [,3]
#[1,]    3   16    4
#[2,]    5   12    7
#[3,]    2   20   NA
#
#, , 3
#
#     [,1] [,2] [,3]
#[1,]   NA    1   19
#[2,]   18   14   NA
#[3,]   11   15   NA

#  Find non-NA elements in third column
apply( m[ , 3 , ] , 2 , function(x) x[! is.na(x) ] )
#[[1]]
#[1] 6

#[[2]]
#[1] 4 7

#[[3]]
#[1] 19

请告诉我们您的数据是什么样子的-很难理解描述…它实际上只是一个12乘12乘12数组,我只想研究每个12乘12矩阵中的第12列正如答案所示,这真的不是grep的位置。NA在R中是一个非常特殊的东西,有很多处理它的工具。好的,is.NA是NA特有的吗,或者也可以通过类似的函数在第I行中找到具有特定值的列吗?@TimHeinert我真不敢相信您的默认操作模式是在不查找函数的情况下询问is.na是否特定于na。您知道吗,您可以通过键入来获得任何当前加载的R函数的帮助?在它的名字之前?是的。回答第2点-是,这是可能的。@TimHeinert更新以回答您的第二个问题。我希望这将回答所有剩余的问题,并且您现在可以通过按下绿色复选标记来接受此答案。
#  To find all values equal to 12 in the 2nd row
apply( m[ 2 , , ] , 2 , function(x) x[ x == 12 ] )