两个长度不同的字符串的接近度评分(在R中实现双重求和)
我试图在R中实现下面的等式,但我在这样做时遇到了困难 我目前的方法如下,但我担心这是不正确的,因为完美匹配会得到相同的分数(很抱歉代码冗长、不复杂:我很新):两个长度不同的字符串的接近度评分(在R中实现双重求和),r,double,proximity,R,Double,Proximity,我试图在R中实现下面的等式,但我在这样做时遇到了困难 我目前的方法如下,但我担心这是不正确的,因为完美匹配会得到相同的分数(很抱歉代码冗长、不复杂:我很新): query=“急性髓系白血病” document1=“急性髓系白血病正常核型” document2=“急性髓系白血病” document3=“急性正常核型” Q由于需要多次计算min\u dist和actual\u dist,因此应该将它们作为函数编写。另外,让您的代码尽可能接近算法。类似于以下的方法应该可以工作: min_dist &
query=“急性髓系白血病”
document1=“急性髓系白血病正常核型”
document2=“急性髓系白血病”
document3=“急性正常核型”
Q由于需要多次计算min\u dist
和actual\u dist
,因此应该将它们作为函数编写。另外,让您的代码尽可能接近算法。类似于以下的方法应该可以工作:
min_dist <- function(d, Q) {
W <- intersect(d,Q)
n <- length(W)
sum(sapply(0:(n-1), function(i) sapply(0:(n-1), function(j) abs(i-j))))
}
current_dist <- function(d, Q) {
W <- intersect(d,Q)
pos <- sapply(W, function(x)which(Q==x))
n <- length(pos)
sum(sapply(1:n, function(i) sapply(1:n, function(j) abs(pos[i]-pos[j]))))
}
dist_d1_Q <- min_dist(d1, Q) / current_dist(d1, Q)
dist_d2_Q <- min_dist(d2, Q) / current_dist(d2, Q)
dist_d3_Q <- min_dist(d3, Q) / current_dist(d3, Q)
c(dist_d1_Q, dist_d2_Q, dist_d3_Q)
# [1] 1 1 NaN
min_dist由于需要多次计算min_dist
和实际_dist
,因此应将它们作为函数编写。另外,让您的代码尽可能接近算法。类似于以下的方法应该可以工作:
min_dist <- function(d, Q) {
W <- intersect(d,Q)
n <- length(W)
sum(sapply(0:(n-1), function(i) sapply(0:(n-1), function(j) abs(i-j))))
}
current_dist <- function(d, Q) {
W <- intersect(d,Q)
pos <- sapply(W, function(x)which(Q==x))
n <- length(pos)
sum(sapply(1:n, function(i) sapply(1:n, function(j) abs(pos[i]-pos[j]))))
}
dist_d1_Q <- min_dist(d1, Q) / current_dist(d1, Q)
dist_d2_Q <- min_dist(d2, Q) / current_dist(d2, Q)
dist_d3_Q <- min_dist(d3, Q) / current_dist(d3, Q)
c(dist_d1_Q, dist_d2_Q, dist_d3_Q)
# [1] 1 1 NaN
min\u dist什么是dat
?。该代码已更新,并将“dat”替换为矩阵中的“y”。为什么您的y是dat
?。该代码已更新,并将“dat”替换为矩阵中的“y”。为什么您的y