gpt4 book ai didi

r - 根据最小值计算特定行

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

我的数据是这样的

df <- data.frame(x = c(3, 5, 4, 4, 3, 2),
y = c(.9, .8, 1, 1.2, .5, .1))

我试图将每个 x 值乘以 y 或 1,具体取决于哪个值最小。

df$z <- df$x * min(df$y, 1)

问题是它取了整列的最小值,所以它是将每个 x 乘以 0.1。

相反,我需要 x 乘以 .9、.8、1、1、.5、.1...

最佳答案

我们需要 pmin 它将遍历 'y' 的每个值并在与第二个值(被回收)进行比较时获得最小值

pmin(df$y, 1)
#[1] 0.9 0.8 1.0 1.0 0.5 0.1

同样,我们可以有 n 个参数(因为参数是 ...)

pmin(df$y, 1, 0)
#[1] 0 0 0 0 0 0

要获得输出,只需将 'x' 乘以 pmin 输出

df$x * pmin(df$y, 1)

也可以写成

with(df, x * pmin(y, 1))

关于r - 根据最小值计算特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50279258/

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