R:匹配两个矩阵的字符串行

R:匹配两个矩阵的字符串行,r,R,我正在处理IP地址数据,并以字符串形式读入数据。为了简单起见,我想出了一个简单的例子。我试图将矩阵“m”中的字符串行与矩阵“abc”中的字符串行进行匹配。但我一直无法获得正确的输出 > abc <- matrix(c("dog", "king", "bee", "cat", "apple","eel", "crab", "ball","soap","crazy"), nrow = 5) > abc [,1] [,2] [1,] "dog" "eel"

我正在处理IP地址数据,并以字符串形式读入数据。为了简单起见,我想出了一个简单的例子。我试图将矩阵“m”中的字符串行与矩阵“abc”中的字符串行进行匹配。但我一直无法获得正确的输出

> abc <- matrix(c("dog", "king", "bee", "cat", "apple","eel", "crab", "ball","soap","crazy"), nrow = 5)
> abc
     [,1]    [,2]   
[1,] "dog"   "eel"  
[2,] "king"  "crab" 
[3,] "bee"   "ball" 
[4,] "cat"   "soap" 
[5,] "apple" "crazy"

> m <- matrix(c("dog", "bee","eel","ball" ), nrow = 2)
> m
     [,1]  [,2]  
[1,] "dog" "eel" 
[2,] "bee" "ball"
我希望输出是
[1] 1 NA 2 NA NA

这是一个
因素
问题,请尝试以下方法:

match(data.frame(t(abc), stringsAsFactors = F),
      data.frame(t(m), stringsAsFactors = F))
#[1]  1 NA  2 NA NA

如果这些是矩阵,怎么可能是“因子问题”?字符串在转换为
数据时会变成
factor
s。frame
我猜这是一个语言问题:)我的意思是它不起作用,因为这些是因子,并不是说因子存在某种问题。我打算建议通过完全跳过数据帧来避开因子问题:
match(split(abc,seq_len(nrow(abc))、split(m,seq_len(nrow(m)))
,或者其他什么。我确信。它确实成为了一个“因素问题”。我应该更仔细地研究中间结果@joran的代码可能会更快,但不容易理解。
match(data.frame(t(abc), stringsAsFactors = F),
      data.frame(t(m), stringsAsFactors = F))
#[1]  1 NA  2 NA NA