我很长时间都在努力解决以下问题。我需要从数据框创建差异矩阵 - 见下文。
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
请,有人可以帮助我或给我一些建议,我怎么能从我的原始数据框创建所需的矩阵(见上文)。非常感谢提前。
答案 0 :(得分:3)
您可以将dist
用于此目的
dist(price$price)
# 1 2 3 4
# 2 4
# 3 6 2
# 4 10 6 4
# 5 22 18 16 12