2011-11-30 110 views
0

我想计算两组之间的距离。 我很困惑。我有两组数据。一个是关于一个公司,一个是关于员工。SAS/R计算两组之间的距离

我想知道他们的年龄(雇员雇用的公司和雇员)是多么相似。 我想我也需要标准化。

  1. 计算每个人和公司之间的欧几里得距离。 (公司4-5人)
  2. 计算每个人和一个公司在工业水平上的欧氏距离。

我的数据集是这样的:

person person_age company company_age industry    

1  50    1  5   1 

2  40    1  5   1 

3  30    2  1  1 

4  20    2  1  1 

5  25    3  8  2 

下面的代码将重现我data.frame:

person <- 1:5 
person_age <- c(50,40,30,20,25) 
company <- c(1,1,2,2,3) 
company_age <- c(5,5,1,1,8) 
industry <- c(1,1,1,1,2) 
myData <- data.frame(person, person_age, company, company_age, industry) 

请帮助我。我不介意使用SAS或R. 我很困惑。

+0

你对正确被困惑。 “距离”的定义是什么? –

+0

我想计算诸如欧几里德距离。谢谢你提问。 – user976856

+0

您的意思是查明一家公司的员工年龄是否与另一家公司相似? –

回答

3

所以,如果你只是想在每个人的年龄欧氏距离,你可以这样做:

d <- dist(myData[c("person","person_age")]) 

你的问题仍然是令人难以置信的格式不正确。例如,“计算每个人和公司之间的欧式距离”是什么意思?

如果你只是想知道每个人以及他们工作的企业之间的距离,你可以代码为:

with(myData, ((person_age - company_age)^2)^.5) 

这简直是二维的欧氏距离公式

+0

我想你错过了你的第二位代码的总和...... –

+0

谁知道。取决于什么OP是寻找:) –

+0

哦,对,我忘了那些是单一的值... –

-4

This post讨论了关于计算欧几里德距离。将数据转换为两个向量并按照步骤进行操作。

+0

OP已经表示,他们想要使用欧几里得距离... –

+3

PS“测量理论和Lebesgue集成” - 真的?这有点像说:“要更换你的排气系统,你应该去冶金学......” –