R构造相似度矩阵

0
我有一列数值,请问如何对这列数值进行两两比较计算距离,得出相似度矩阵?
距离采用dist就行,我用了apply没得到想要的结果,求指教
已邀请:
2

marxsong 2016-10-18 回答

是否是要达到如下效果:
 
> x <- matrix(rnorm(5), nrow = 5)
> x
           [,1]
[1,] -1.5640913
[2,]  0.1420451
[3,]  0.1818106
[4,] -0.3224677
[5,]  0.2634243
> dist(x, diag = TRUE,upper = TRUE)
           1          2          3          4          5
1 0.00000000 1.70613641 1.74590189 1.24162359 1.82751562
2 1.70613641 0.00000000 0.03976548 0.46451283 0.12137921
3 1.74590189 0.03976548 0.00000000 0.50427830 0.08161373
4 1.24162359 0.46451283 0.50427830 0.00000000 0.58589204
5 1.82751562 0.12137921 0.08161373 0.58589204 0.00000000
 
对于字符型的,可以使用stringdist包里的stringdistmatrix函数
library(stringdist)
d <- stringdistmatrix(c('foo','bar','boo','baz'))
> d
  1 2 3
2 3    
3 1 2  
4 3 1 2
详细可以参考stringdistmatrix函数帮助
https://www.rdocumentation.org ... gdist
0

jlogan 2016-10-18 回答

多谢前辈,对于数值型可以,dist返回的是矩阵。但是对于字符型的数据请问该如何解决?
比如我有中文字符属性,可以用字符串相似度求两个字符串的相似度。而对于很多数据,如何形成字符串两两比较的结果?

要回复问题请先登录注册