Умножьте значения столбца на группу в r - PullRequest
0 голосов
/ 13 марта 2020

У меня есть фрейм данных:

 id     weight     value
231      50         0.6
231      50         0.43
420      30         0.86
420      30         0.12

Как мне умножить все значения для каждого идентификатора и веса, чтобы получить следующую таблицу:

id     weight     value
231     50       0.6*0.43
420     30       0.86*0.12

Ответы [ 2 ]

2 голосов
/ 13 марта 2020

Используйте prod() для умножения всех значений в своих аргументах.

library(dplyr)

df %>%
  group_by(id, weight) %>%
  summarise(prod = prod(value))

# # A tibble: 2 x 3
# # Groups:   id [2]
#      id weight  prod
#   <int>  <int> <dbl>
# 1   231     50 0.258
# 2   420     30 0.103

Или базовый способ

aggregate(value ~ id + weight, df, prod)
0 голосов
/ 13 марта 2020

С data.table

library(data.table)
setDT(df)[, .(Prod = prod(value)), .(id, weight)]
...