gpt4 book ai didi

r - 快速除特定值 R

转载 作者:行者123 更新时间:2023-12-01 23:05:31 25 4
gpt4 key购买 nike

我有两个长度相等的向量,我想根据第二个的标准将第一个中的值减半。作为一个具体的例子,让

V1 = 1:6 ; V2 = c(0,0,1,1,0,1)

我想将 V1 中的每个值除以 2,这对应于 V2 中的 1。

我知道如何使用 for 循环来做到这一点,但每个向量都有几十万个元素,所以看起来应该有一个更快的方法。

我真正在寻找的是类似于 apply 功能,但仅适用于选择性元素。

最佳答案

v1 = c(1:6)
v2 = c(0,0,1,1,0,1)
v1 / (v2+1)

更一般地,如果您想要一个应用功能,请查看 ?mapply

mapply(function(x1, x2) { if (x2==1) { x1/2; } else { x1 } } , v1, v2)

这是一种使用 data.table 的方法,它可能会很快......

library(data.table)
DT[v2==1,divisor:=2]
DT[v2==0,divisor:=1]
DT[,answer:=v1/divisor]

关于r - 快速除特定值 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29765553/

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