для каждого jobtask
Я пытаюсь разделить value
на weight
с двумя отдельными столбцами для вычисления значений +1 и значений -1. Для outputnegative
мне бы понадобились абсолютные (положительные) значения.
Имея это, я бы хотел еще раз добавить еще 2 столбца, которые на значение для occupation
(a / b / c) суммируют outputpositive
и outputnegative
. Я не могу понять это, любая помощь будет высоко ценится !!!
occupation <- c("a", "a", "a", "a", "b", "b", "b", "b", "c", "c", "c", "c")
jobtask <- c("1", "2", "3", "4","5", "6", "7", "8", "9", "10", "11", "12")
value <- c("1", "1", "0", "-1", "-1", "0", "-1", "1", "-1", "1", "0", "0")
weight <- c("95", "81", "97", "65", "43", "92", "89", "43", "58", "99", "35", "69")
df <- data.frame(occupation, jobtask, value, weight)
Желаемый результат ниже:
occupation jobtask value weight outputpos outputneg occupationpos occupationneg
1 a 1 1 95 0.95 1.76 0.65
2 a 2 1 81 0.81 1.76 0.65
3 a 3 0 97 1.76 0.65
4 a 4 -1 65 -0.65 1.76 0.65
5 b 5 -1 43 -0.43 0.43 1.22
6 b 6 0 92 0.43 1.22
7 b 7 -1 89 -0.89 0.43 1.22
8 b 8 1 43 0.43 0.43 1.22
9 c 9 -1 58 -0.58 0.99 0.58
10 c 10 1 99 0.99 0.99 0.58
11 c 11 0 35 0.99 0.58
12 c 12 0 69 0.99 0.58
Дополнительное дополнение для исправления нескольких лет. В df каждая строка равна одному году, поэтому «сумма» для этого определенного c занятия теперь составляет 5,42, тогда как она должна быть 0,95 + 0,81 = 1,76, как это было в примере выше. Каждый jobtask
имеет различное число year
, поэтому нельзя просто разделить его на одно число, чтобы учесть количество лет. Есть предложения?
occupation jobtask year value weight outputpos outputneg occupationpos occupationneg
1 a 1 2015 1 95 0.95 5.42
2 a 1 2016 1 95 0.95 5.42
3 a 1 2017 1 95 0.95 5.42
4 a 1 2018 1 95 0.95 5.42
5 a 2 2015 1 81 0.81 5.42
6 a 2 2016 1 81 0.81 5.42 ```