假设我有一个包含四个向量的数据框,其结构如下,但是在300个国家/地区持有31年的信息。
year<-c(1999,1999,1999,2000,2000,2000,2001,2001,2001)
country<-c(1,2,3,1,2,3,1,2,3)
class<-c(3,2,2,5,2,2,2,1,4)
count<-c(2,5,6,2,4,8,1,4,3)
df<-data.frame(year,city,class,count)
year country class count
1 1999 1 3 2
2 1999 2 2 5
3 1999 3 2 6
4 2000 1 5 2
5 2000 2 2 4
6 2000 3 2 8
7 2001 1 2 1
8 2001 2 1 4
9 2001 3 4 3
count
的值告诉我们某一年,国家和班级有多少辆汽车。在上面的例子中,国家1在1999年只有2辆车在第3级。
我还有31个矩阵(每个year
1个)nrow=438
和ncol=438
。数字438对应于汽车可以属于的等级数。元素的值表示类之间的距离。给出了这个值。
例如:1999年1级和8级车之间的距离为0.0016。
>example_input_matrix_1999[1:10,1:10]
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1.0000 0.0000 0.0000 0.0000 0 0 0 0.0016 0.0000 0.0000
[2,] 0.0000 1.0000 0.0481 0.0000 0 0 0 0.0213 0.0000 0.0000
[3,] 0.0000 0.0481 1.0000 0.0000 0 0 0 0.0000 0.0065 0.0000
[4,] 0.0000 0.0000 0.0000 1.0000 0 0 0 0.0138 0.0000 0.0000
[5,] 0.0000 0.0000 0.0000 0.0000 1 0 0 0.0000 0.0000 0.0000
[6,] 0.0000 0.0000 0.0000 0.0000 0 1 0 0.0000 0.0000 0.0000
[7,] 0.0000 0.0000 0.0000 0.0000 0 0 1 0.0000 0.0000 0.0000
[8,] 0.0016 0.0213 0.0000 0.0138 0 0 0 1.0000 0.0176 0.0067
[9,] 0.0000 0.0000 0.0065 0.0000 0 0 0 0.0176 1.0000 0.0000
[10,] 0.0000 0.0000 0.0000 0.0000 0 0 0 0.0067 0.0000 1.0000
现在,我想构建一个国家级别的衡量标准,告诉我平均距离&#34;在那个国家的汽车和其他国家的汽车之间。
研究问题是:X国的汽车在T级的汽车在T级看起来像汽车多少。
首先,我从第一年,城市和班级开始。在上面的例子中,国家1在第三级只有2辆车。现在我发现当年其他国家的汽车在哪些级别。我发现在国家2的2级车中有5辆车,在1999年的国家3中在2级车中找到6辆车。
其次,我想在1999年找到3级和2级之间的距离,所以我需要参考输入矩阵,它保持这些级别之间的那一年的距离。我发现2级和3级之间的距离为0.0481。
第三,我需要通过两个类别中汽车数量的乘积(在这种情况下为10倍0.0481)来乘以该距离。我想为两国之间的每一对班级做这件事。如果我总结这些,我在任何一对国家之间都有总距离。
第四,因为我对平均距离感兴趣,所以我想将此值除以国家1中汽车总数和国家2中汽车总数的乘积。 / p>
此计算的输出是我正在寻找的,但不知道将其编码为谁。
最后我希望31个矩阵(300 * 300)的输出在行和列上有国家/地区,其中元素代表每年这些国家/地区之间的汽车类别的平均距离 。
非常感谢任何帮助。
谢谢!