gpt4 book ai didi

r - 如何向量化模数?

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

R 中,我有一个包含整数的向量,应该检查它是否可以整除多个值而没有余数。

v <- c(3, 4, 10, 11, 12)
v %% 4 == 0 | v %% 10 == 0 #... this might include 100 checks or more

我正在寻找它的矢量化(比如 v %% c(4, 10)),它可能会返回一个矩阵或类似的东西。


我编写了一个可以执行此操作的函数,但我想知道是否已经存在这样一个函数,我可以重用它而不是再次“重新发明”它。

`%V%`  <- function(x, y){
ret <- matrix(nrow = length(x), ncol = length(y))
for(i in 1:ncol(ret)){
ret[, i] <- x %% y[i]
}
return(ret)
}
v %V% c(4, 10)

为了最初的目的,我现在将运行 apply(v %V% c(4, 10), 1, function(x) any(x == 0)) 或相应地更改我的函数.

最佳答案

您可以使用outer-函数来实现您想要的:

outer(v, c(4,10), '%%') == 0

给出:

      [,1]  [,2]
[1,] FALSE FALSE
[2,] TRUE FALSE
[3,] FALSE TRUE
[4,] FALSE FALSE
[5,] TRUE FALSE

关于r - 如何向量化模数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48006023/

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