gpt4 book ai didi

r - 计算 data.frame 中的行和和乘积

转载 作者:行者123 更新时间:2023-12-04 01:33:28 25 4
gpt4 key购买 nike

我想在 R 中的 data.frame 中附加一列,其中包含行总和和乘积
考虑以下数据框

x    y     z
1 2 3
2 3 4
5 1 2

我想得到以下
x    y     z    sum    prod
1 2 3 6 6
2 3 4 9 24
5 1 2 8 10

我试过了
 sum = apply(ages,1,add)

但它给了我一个行向量。有人可以告诉我一个有效的命令来求和和乘积并将它们附加到原始数据框中,如上所示?

最佳答案

试试

 transform(df, sum=rowSums(df), prod=x*y*z)
# x y z sum prod
#1 1 2 3 6 6
#2 2 3 4 9 24
#3 5 1 2 8 10

或者
 transform(df, sum=rowSums(df), prod=Reduce(`*`, df))
# x y z sum prod
#1 1 2 3 6 6
#2 2 3 4 9 24
#3 5 1 2 8 10

另一种选择是使用 rowProds来自 matrixStats
 library(matrixStats)
transform(df, sum=rowSums(df), prod=rowProds(as.matrix(df)))

如果您正在使用 apply
 df[,c('sum', 'prod')] <-  t(apply(df, 1, FUN=function(x) c(sum(x), prod(x))))
df
# x y z sum prod
#1 1 2 3 6 6
#2 2 3 4 9 24
#3 5 1 2 8 10

关于r - 计算 data.frame 中的行和和乘积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27103031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com