请,任何人都可以帮助我实现以下概述的计算。
我正在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)不受伤是理想的。
如何在数学上将所有事物放在一起并获得一个索引,该索引代表哪个事件比另一个事件严重多少?
我知道如何创建列和分配值。 我只想知道如何计算将要存储的值。
我知道这更多地与数学有关,但是“数学堆栈交换”中的数学家拒绝回答,因为他们认为它没有数学而是编程。 :/
谢谢大家的尝试!
答案 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