gpt4 book ai didi

r - 条件求和 (R)

转载 作者:行者123 更新时间:2023-12-04 16:25:08 24 4
gpt4 key购买 nike

我正在尝试创建一个条件总和,以计算平均值。这个想法是一个函数(或一个应用语句)检查某个值是否为真(例如 x > 0),然后将 x 的所有值相加,这些值高于零。最后一步是将这个总和除以大于零的实例数。搜索条件总和(ming)没有给我有用的信息。

这是部分数据:

> tmpData
Instrument TradeResult.Currency.
1 JPM -3
2 JPM 264
3 JPM 284
4 JPM 69
5 JPM 283
11 KFT -8
12 KFT -48
13 KFT 125
14 KFT -150
15 KFT -206
16 KFT 107

在我尝试过的功能中,以下最有希望:
avgProfit <- function(x) {
ifelse(x > 0,
sum(x) / length(which(x > 0)),
return(0))
}

但是,此函数的输出为 0:
> with(tmpData, tapply(TradeResult.Currency., Instrument, avgProfit))
JPM KFT
0 0
> avgProfit(tmpData$TradeResult.Currency.)
[1] 0
> x
[1] 1 1 2 1 2 3 3 3 4 4

(JPM 的值应该是 225(总共 900 除以 4 个大于零的实例)和 116 的 KFT)

即使我计算了函数中 x 的总和(如果我理解正确,它应该是 data.frame 中各个值的总和),变量 'x' 的输出让我感到困惑。我无法找到这些 1、2、3 和四点从哪里来。

如何计算条件总和?此外,我需要使用一个函数还是我让它太复杂了(也许我忽略了一个内置的 R 函数?)

任何想法都非常受欢迎,

问候,

最佳答案

首先删除未使用的行然后聚合它们可能是一种简单的方法:

aggregate(TradeResult.Currency.~Instrument,
mean,
data=subset(tmpData,TradeResult.Currency.>0))

关于r - 条件求和 (R),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4364283/

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