如何计算和创建索引以表示其他列的值?

时间:2018-10-23 15:35:18

标签: r calculus

请,任何人都可以帮助我实现以下概述的计算。

我正在RStudio中使用R。

df <- data.frame(x = c(1,2,3,4,5,6,7,8,9,0,11,12,13,14,15,16,17,18,19,20),
             total_fatal_injuries = c(1,0,5,4,0,27,10,15,6,2,10,4,0,0,1,0,3,0,1,0),
             total_serious_injuries = c(10,0,9,3,2,4,9,9,0,8,3,1,0,8,2,7,5,4,0,2),
             total_minor_injuries = c(10,0,9,3,2,4,9,9,0,8,3,1,0,8,2,7,5,4,0,3),
             total_uninjuried = c(1,0,1,0,0,10,2,5,0,4,0,0,31,0,2,3,0,1,0,0),
             injured_index = c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0))

在上面的数据集中,每行代表对车辆事故发生的观察。

“ x”列只是一个ID。

同一事件可能会使个人遭受不同程度的伤害:致命伤害,重伤,轻伤和未受伤。每列的值之和等于该事件所涉及的个人数量。

目标是根据其他列中记录的值,用代表事件严重性的值填充“ injured_index”列。

一个数字索引,表示发生的严重程度,可以根据此索引对数据集进行排序。

计算“ injured_index”列的最佳公式是什么?

我希望有人对如何计算代表该严重程度的索引值提出建议。基于每次发生的每个级别的受害者总数。

重要性很容易理解。

1)致命是坏事
2)认真的程度要差一些
3)次要不好
4)不受伤是理想的。

如何在数学上将所有事物放在一起并获得一个索引,该索引代表哪个事件比另一个事件严重多少?

我知道如何创建列和分配值。 我只想知道如何计算将要存储的值。

我知道这更多地与数学有关,但是“数学堆栈交换”中的数学家拒绝回答,因为他们认为它没有数学而是编程。 :/

谢谢大家的尝试!

1 个答案:

答案 0 :(得分:1)

这是一种方法。

# This counts how many people in each row, for columns 2 through 5
df$count <- rowSums(df[,2:5])

# This assigns a weighting to each severity of injury and divides by how
#   many people in that row. Adjust the weights based on your judgment.
df$injured_index = (1000 * df$total_fatal_injuries + 200 * 
  df$total_serious_injuries + 20 * df$total_minor_injuries) / df$count