gpt4 book ai didi

r - 按公式计算

转载 作者:行者123 更新时间:2023-12-01 11:16:52 24 4
gpt4 key购买 nike

我需要按照下面的公式做一些计算:

B1 = A1 + (1-A1) * B1

例子:

B1 = 0.2 + (1 - 0.2) * 0.4
= 0.52

C1 = 0.4 + (1 - 0.4) * 0.8
= 0.904

D1 = 0.8 + (1 - 0.8) * 0.5
= 0.952

其他行其他列同理,一共11个。

数据框:

df

A        B      C        D
0.2 0.4 0.8 0.5
0.4 0.5 0.6 0.2
0.8 0.1 0.5 0.4
0.3 0.4 0.1 0.8

预期输出:

A       B       C       D
0.2 0.52 0.904 0.952
0.4 0.7 0.88 0.904
0.8 0.82 0.91 0.946
0.3 0.58 0.622 0.9244

我用下面的代码尝试了 1:

Df <- df[-ncol(df)] + ( 1 – df[-ncol(df)]) * df[-1]

我能够根据输出获得 B 列,但无法处理该列的其余部分。请帮助,谢谢。 BM。

最佳答案

您可以按如下方式递归执行此操作:

do.call(cbind, Reduce(f = function(A1, B1) A1+(1-A1)*B1, 
x = df,
accumulate = TRUE))

解释:由于 df 是一个 data.frame,它是一个向量列表,Reduce 将采用每个向量并应用您的函数。然后 do.call(cbind,...) 将结果合并到一个 data.frame 中。

关于r - 按公式计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49730399/

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