String 在将字符串作为输入的函数中正确使用*apply
我感兴趣的是将String 在将字符串作为输入的函数中正确使用*apply,string,r,String,R,我感兴趣的是将levenshteinSim函数从记录链接包应用到字符串向量(关于函数有很好的讨论) 假设我有一个向量,叫做code:“a”、“B”、“C”、“D”,等等。; 一个名为的向量测试:“a”、“B”、“C”、“D”等 使用sapply针对代码的向量测试“tests”中的特定值 sapply(codes,levenshteinSim,str2=tests[1]) 我希望得到一个列表或向量(如果我犯了术语错误,我深表歉意):[score1][score2][score3] 不幸的是,输出
levenshteinSim
函数从记录链接包应用到字符串向量(关于函数有很好的讨论)
假设我有一个向量,叫做code
:“a”、“B”、“C”、“D”
,等等。;
一个名为的向量测试:“a”、“B”、“C”、“D”等
使用sapply
针对代码的向量测试“tests”中的特定值
sapply(codes,levenshteinSim,str2=tests[1])
我希望得到一个列表或向量(如果我犯了术语错误,我深表歉意):[score1][score2][score3]
不幸的是,输出是对测试[1]
中的值与c(“a”、“B”、“c”、“D”…)
中的单个值进行测试
最后,我想将这两个向量相互应用,生成一个长度为len1*len2的矩阵,但在我明白我做错了什么之前,我不想前进
有人能提供指导吗?我不确定问题出在哪里:
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的向量。感谢您的回复@DWin。我必须从我的数据中提取一些样本来进行测试。注意:我正在“降低”每个元素(因为levenshteinSim是区分大小写的)。我不确定这会对事情产生什么影响。