2015-10-16 54 views
1

我有一个三列和两行的数据集。Grep:如何使用?

1 2 3 
4 5 9 

我想使用“grep”命令来查找9的列号。我已经知道它将是第二行。所以:

grep(9, ds[2,]) 

它不起作用(即返回integer(0))。

但是,反过来,如果我想知道在哪个行号9,我知道列数它的工作

grep(9, de[,3]) 

这将返回答案2

回答

4

grep()在这里不合适,您可以使用数字匹配代替。如果您知道行状态和列状态,则在匹配==之后,您可以匹配which()

> ds <- matrix(c(1, 2, 3, 4, 5, 9), nrow = 2) 
> ds 
    [,1] [,2] [,3] 
[1,] 1 3 5 
[2,] 2 4 9 
> which(ds[2,]==9) 
[1] 3 
> which(ds[,3]==9) 
[1] 2 
+1

谢谢。我不熟悉'which'命令。 – Ashoka

4

如果不处理字符串,请不要使用正则表达式函数。使用which

m <- rbind(1:3, c(4, 5, 9)) 
which(m == 9, arr.ind = TRUE) 
#  row col 
#[1,] 2 3