我有一个data.frame(质心),其中包含虚拟三维空间(列= AV,V和A),每个代表一个字符(列=字符)的点。每行包含不同的字符。计算3点的欧几里德距离
AV<-c(37.9,10.87,40.05)
V<-c(1.07,1.14,1.9)
A<-c(0.04,-1.23,-1.1)
Character<-c("a","A","b")
centroid = data.frame(AV,V,A,Character)
centroid
AV V A Character
1 37.90 1.07 0.04 a
2 10.87 1.14 -1.23 A
3 40.05 1.90 -1.10 b
我想知道每个字符之间的相似性/不相似性。例如,“a”对应于37.9,1.07和0.04,而“A”对应于10.87,1.14,-1.23。我想知道这些角色/ 3点之间的距离。
我相信我可以使用每个字符之间的欧几里德距离来计算这个值,但我不确定要运行的代码。
我试图使用
dist(as.matrix(Centroids))
但并不成功,因为这只是给在控制台中大印刷。任何援助将不胜感激。
你需要开始学习如何创建矢量和矩阵,并学习R中的不同数据类型。有一个称为“data.frame”的数据结构,但不包含“dataframe”。如果你想要一个数字向量,可以使用'c(37.9,10.87,40.05)'; '“37.9,10.87,40.05”'是长度为1的字符向量。这些小的语法细节很重要。 – 2014-09-03 06:56:54
@RichieCotton谢谢你,我会编辑我的问题,以更好地反映我的data.frame的结构。我是R和SO的新用户,对我的问题的糟糕结构表示歉意。 – user2716568 2014-09-03 06:58:44