请检查下面的代码,我使用下面的三个变量创建了一个数据框,变量“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)
答案 0 :(得分: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