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)
好的,所以我现在遇到了这个问题。我有一个矩阵 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)