我有第一个向量,例如:x=1:10,第二个有质数,例如y=c(2,3,5,7)
我希望矢量x进行排序:可被2整除,可被3整除,依此类推。
因此,输出将如下所示:2 4 6 8 10 3 9 5 7

最佳答案

使用apply循环和mod:

unique(unlist(sapply(y, function(i)x[x%%i == 0])))
# [1]  2  4  6  8 10  3  9  5  7

或者使用@zheyuanLi建议的as.logical代替==:
unique(unlist(sapply(y, function(i) x[!as.logical(x%%i)])))

使用expand.grid而不是apply的类似方法:
xy <- expand.grid(x, y)
unique(xy[ xy[,1]%%xy[,2] == 0, 1])

关于r - 二等分向量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37890342/

10-12 18:05