gpt4 book ai didi

根据另一个变量中的 TRUE 或 FALSE 重新编码

转载 作者:行者123 更新时间:2023-12-03 18:20:00 24 4
gpt4 key购买 nike

我正在根据另一个变量的 TRUE/FALSE 状态计算一个新变量:

value<-c(2, 4, 5, 8, 2, 3, 1)
tf<-c(TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE)
df<-data.frame(value, tf)

下面的代码做我需要的(如果 'tf' 为 TRUE,则将 'value' 减半)...
df$newVals[which(df$tf)]<-df$value[which(df$tf)]/2
df$newVals[which(!df$tf)]<-df$value[which(!df$tf)]

……不过感觉太复杂了。有没有更简单的方法?

谢谢

最佳答案

这是一个非常简单的解决方案,没有 ifelse :

df$newVals <- with(df, value / (tf + 1))

这个怎么运作?

如果 bool 值(如 tf )与数学运算符一起使用,它们将被转换为数值( FALSE 被转换为 0 并且 TRUE 被转换为 1 )。因此命令 tf + 1创建一个数值向量 1 s 和 2 s。 value 中的值除以这个新向量中的值。除以 1 不会改变原始值。

关于根据另一个变量中的 TRUE 或 FALSE 重新编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13291447/

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