我有第一个向量,例如:x=1:10,第二个有素数,例如y=c(2,3,5,7)。
我想要排序的向量x:可被2整除,可被3整除等等。所以,输出如下所示:2 4 6 8 10 3 9 5 7
发布于 2016-06-17 21:13:51
使用apply循环和mod
unique(unlist(sapply(y, function(i)x[x%%i == 0])))
# [1] 2 4 6 8 10 3 9 5 7或者使用as.logical代替==,这是由@浙原by建议的:
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])发布于 2016-06-18 04:07:14
另一个选择是
unique(rep(x, length(y))[rep(x, length(y))%% rep(y, each = length(x))==0])
#[1] 2 4 6 8 10 3 9 5 7https://stackoverflow.com/questions/37890342
复制相似问题