我在R中有一个带有一列的数据框,如下所示,我想创建一个具有一列的新数据框,该数据框具有现有列的元素的乘积。
/**
* Get the password reset validation rules.
*
* @return array
*/
protected function rules()
{
// If you have further fields and rules you can add in following array.
return [
'token' => 'required',
'email' => 'required|email',
'password' => 'required|confirmed|min:6',
];
}
/**
* Get the password reset validation error messages.
*
* @return array
*/
protected function validationErrorMessages()
{
return [
// Here write your custom validation error messages
];
}
答案 0 :(得分:2)
我们可以使用rev
和cumprod
df$y <- rev(cumprod(rev(df$x)))
df
# x y
#1 2 5760
#2 3 2880
#3 4 960
#4 5 240
#5 8 48
#6 6 6
数据
df <- data.frame(x = c(2,3,4,5,8,6))
答案 1 :(得分:1)
您还可以将基数R Reduce
与accumulate = TRUE
一起使用,即
rev(Reduce(`*`, rev(df$x), accumulate = TRUE))
#[1] 5760 2880 960 240 48 6
答案 2 :(得分:0)
我们可以使用accumulate
library(tidyverse)
df %>%
mutate(y = accumulate_right(x, `*`))
# x y
#1 2 5760
#2 3 2880
#3 4 960
#4 5 240
#5 8 48
#6 6 6
df <- data.frame(x = c(2,3,4,5,8,6))