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