1

请检查下面的代码,我使用下面的三个变量创建了一个数据框,变量“y123”计算列 a2 与 a1 之间的相似性。变量“y123”给了我总共 16 个值,其中每个 a1 值都与 a2 进行比较。我的需要是,当将特定的“a1”值与特定的“a2”值进行比较时,我希望在“a2”旁边显示相应的“a3”值。所以结果应该是一个数据框,其中列 y123 和第二列,对应的“a3”列出现四次,即 16 个值。谢谢,请帮忙。

library(stringdist)
library(RecordLinkage)
a1 = c(103,120,142,153)
a2 = c(113,453,142,102)
a3 = c("a1","b1","c1","d1")
a1 = as.character(a1)
a2 = as.character(a2)
a3 = as.character(a3)
a123 = data.frame(a1,a2,a3)
y123 = sapply(a1, function(i) RecordLinkage::levenshteinSim(i,a2))
b1 = c(y123)
b1

我需要一些东西列出这个:

new_data = data.frame(b1,new_column)
4

1 回答 1

0

我想这就是你想要的。我修改了你的sapply功能:

data.frame(y123 = c(y123), a3 = rep(a3, times = length(a3)))
#        y123 a3
#1  0.6666667 a1
#2  0.3333333 b1
#3  0.3333333 c1
#4  0.6666667 d1
#5  0.3333333 a1
#6  0.0000000 b1
#7  0.3333333 c1
#8  0.3333333 d1
#9  0.3333333 a1
#10 0.0000000 b1
#11 1.0000000 c1
#12 0.6666667 d1
#13 0.6666667 a1
#14 0.6666667 b1
#15 0.3333333 c1
#16 0.3333333 d1
于 2017-12-07T11:31:06.187 回答