将 r 中每组的列值相乘
Multiply column values per group in r
我有一个数据框如下:
id weight value
231 50 0.6
231 50 0.43
420 30 0.86
420 30 0.12
如何将每个 id 和 weight 的所有值相乘得到以下 table:
id weight value
231 50 0.6*0.43
420 30 0.86*0.12
使用 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)
和data.table
library(data.table)
setDT(df)[, .(Prod = prod(value)), .(id, weight)]
我有一个数据框如下:
id weight value
231 50 0.6
231 50 0.43
420 30 0.86
420 30 0.12
如何将每个 id 和 weight 的所有值相乘得到以下 table:
id weight value
231 50 0.6*0.43
420 30 0.86*0.12
使用 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)
和data.table
library(data.table)
setDT(df)[, .(Prod = prod(value)), .(id, weight)]