从R中的数据框创建差异矩阵

时间:2015-05-28 12:58:26

标签: r

我很长时间都在努力解决以下问题。我需要从数据框创建差异矩阵 - 见下文。

price <- data.frame(prod=c("prod1","prod2","prod3","prod4","prod5"),
                price=c(10,14,16,20,32))

数据框看起来像这样,但实际上是非常庞大的数据集。

prod price
prod1    10
prod2    14
prod3    16
prod4    20
prod5    32

从这个数据框架我需要创建具有价格差异的矩阵,其中下面的矩阵中的每个组合代表产品价格之间的绝对值差异 - 见下文。

 # Price difference matrix (differencies between prices must be in absolute value) - desired output:

           prod1    prod2   prod3   prod4
prod2        4  
prod3        6        2
prod4       10        6       4
prod5       22       18      16      12

请,有人可以帮助我或给我一些建议,我怎么能从我的原始数据框创建所需的矩阵(见上文)。非常感谢提前。

1 个答案:

答案 0 :(得分:3)

您可以将dist用于此目的

dist(price$price)
#    1  2  3  4
# 2  4         
# 3  6  2      
# 4 10  6  4   
# 5 22 18 16 12