从数据框中的字符串列创建距离矩阵

时间:2019-05-02 12:45:35

标签: r

我尝试使用此代码失败:

library(fuzzywuzzyR)
library(proxy)

set.seed(42)
rm(list = ls())
options(scipen = 999)

init = FuzzMatcher$new()

data <- data.frame(string = c("aaaaa baaaaa", "baaaaa xxxhhx ", "caaaaa hhhr ejhhehe"))
data$string <- as.character(data$string)

f <- function(string_1, string_2) {
    init$Token_set_ratio(string1 = string_1, string2 = string_2, force_ascii = TRUE, full_process = TRUE)
}

proxy::dist(data$string, method = f)

目标是使用proxy :: dist和FuzzywuzzyR软件包生成每一行之间的距离。

错误:

  

错误:“ string1”和“ string2”这两个参数均应为类型   字符串        另外:警告消息:               在do.call(“。External”,c(list(CFUN,x,y,pairwise,if(!is.function(method))get(method)else方法),中:                强制引入的NAs

1 个答案:

答案 0 :(得分:0)

我在机器上对此进行了测试,并通过install.packages安装了Fuzzywuzzyr软件包。这样可以很好地安装软件包,但是当我运行init$Token_set_ratio(string1 = s1, string2 = s2, force_ascii = TRUE, full_process = TRUE) 时,这给了我一个错误attempt to apply non-function,这又在以后对NAs introduced by coercion的调用中返回了proxy::dist。我相信问题可能与https://github.com/mlampros/fuzzywuzzyR/issues/4类似,而且我什至无法在小插图中运行基本示例。我相信该软件包已损坏或无法维护,因为我什至无法在github回购中运行utils部分,而不会遇到相同的非功能错误。抱歉,这无法解决您的问题,但也许会有所帮助。