R - 查找数据框中字符串的每个位置

jdf*_*ch3 8 search r dataframe

我有一个如下所示的数据框:

a <- c("jan", "mar", "jan", "feb", "feb")
b <- c("feb", "mar", "mar", "jan", "mar")
c <- c("jan", "feb", "feb", "jan", "jan")
d <- c("jan", "mar", "jan", "feb", "feb")
e <- c("feb", "jan", "feb", "mar", "mar")
f <- c("jan", "feb", "feb", "jan", "jan")
xxx <- data.frame(a,b,c,d,e,f)
xxx
Run Code Online (Sandbox Code Playgroud)

我需要在字符串的每个实例的xxx中找到位置,比如说"jan".我可以看到运行df中每个插槽的hacky解决方案,并检查它是否=="jan",但肯定有一个正确而简单的方法.理想情况下,我想将结果作为坐标列表返回.

感谢您的任何帮助!

Ric*_*rta 9

该函数which有一个名为的参数arr.ind,它将为您提供一个2列矩阵,指示每个匹配的位置

which(xxx == "jan", arr.ind=TRUE)
      row col
 [1,]   1   1
 [2,]   3   1
 [3,]   4   2
 [4,]   1   3
 [5,]   4   3
 [6,]   5   3
 [7,]   1   4
 [8,]   3   4
 [9,]   2   5
[10,]   1   6
[11,]   4   6
[12,]   5   6
Run Code Online (Sandbox Code Playgroud)

  • @BondedDust - `==`在调用`which`之前将数据帧转换为逻辑矩阵. (2认同)