正确使用* apply与将字符串作为输入的函数

时间:2013-11-05 23:20:06

标签: string r

我有兴趣将 Record-Linkage 包中的levenshteinSim函数应用于字符串向量(对函数here进行了很好的讨论)。

想象一下,我有一个名为codes的向量:"A","B","C","D"等; 还有一个名为tests的向量:"A","B","C","D"

使用sapply针对codes的向量测试“测试”中的特定值,

sapply(codes,levenshteinSim,str2=tests[1])

我希望得到一个列表或向量(如果我犯了术语错误,我会道歉):[score1] [score2] [score3]

不幸的是,输出是tests[1]c("A","B","C","D", ...)的值的测试 - 单个值。

最终,我想*apply两个向量相互对立,产生一个长度为len1*len2的矩阵 - 但我不想向前推进,直到我明白我做错了什么为止

任何人都可以提供指导吗?

1 个答案:

答案 0 :(得分:0)

我不确定问题出在哪里:

 library(RecordLinkage)
 sapply(codes,levenshteinSim,str2=test)
     A B C D
[1,] 1 0 0 0
[2,] 0 1 0 0
[3,] 0 0 1 0
[4,] 0 0 0 1

当str2只是一个项目时,你得到一个长度为4的向量。