数据帧R中的grep
我想在数字数组的特定列中搜索所有非NA的结果。我用NA填充as 12,12,12 dim阵列,然后填充它。现在我想搜索第12列中的值,所以所有不是NA的东西。我确信有可能使用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
谢谢这里是一个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 ] )