R中字符类型和因子类型的比较

Comparison of of character type and factor type in R

好的,所以我现在遇到了这个问题。我有一个矩阵 A,其 rownames 是另一个矩阵 B 中字段的值。我想在第二个矩阵 B 中找到我的 rownames 的索引。现在我正在尝试执行此操作 which(A$field == rowname_A)。不幸的是,有几件事出现了——rowname_A 变量具有 class 的特征。它是这种格式,"X12345"A$field 的值属于 factor 类型。有没有办法从字符中删除附加的 X,将其转换为因子并进行比较。或者把A$field的因子变量转换成字符型再做比较。

我们将不胜感激。

谢谢。

这很简单。下面的示例应该可以帮到您。

A <- matrix(1:3)
rownames(A) <- paste0("X", 1:3)
B <- data.frame(field = factor(1:3))

# Remove "X" from rownames(A) and check equality
B$field %in% substr(rownames(A), 2, nchar(rownames(A)))

# Add "X" to B$field and check equality
paste0("X", B$field) %in% rownames(A)