首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二分向量

二分向量
EN

Stack Overflow用户
提问于 2016-06-17 21:03:50
回答 2查看 93关注 0票数 6

我有第一个向量,例如:x=1:10,第二个有素数,例如y=c(2,3,5,7)

我想要排序的向量x:可被2整除,可被3整除等等。所以,输出如下所示:2 4 6 8 10 3 9 5 7

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-17 21:13:51

使用apply循环和mod

代码语言:javascript
复制
unique(unlist(sapply(y, function(i)x[x%%i == 0])))
# [1]  2  4  6  8 10  3  9  5  7

或者使用as.logical代替==,这是由@浙原by建议的:

代码语言:javascript
复制
unique(unlist(sapply(y, function(i) x[!as.logical(x%%i)])))

类似的方法使用expand.grid而不是apply:

代码语言:javascript
复制
xy <- expand.grid(x, y)
unique(xy[ xy[,1]%%xy[,2] == 0, 1])
票数 6
EN

Stack Overflow用户

发布于 2016-06-18 04:07:14

另一个选择是

代码语言:javascript
复制
unique(rep(x, length(y))[rep(x, length(y))%% rep(y, each = length(x))==0])
#[1]  2  4  6  8 10  3  9  5  7
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37890342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档