2016-06-17 10 views
6

मैं प्रथम वेक्टर, उदाहरण: x=1:10 और रूढ़ अंक के साथ दूसरे, उदाहरण के y=c(2,3,5,7)डिवीजन दो वैक्टर

और मैं तरह वेक्टर x हैं: 2 से विभाज्य, 3 से विभाज्य, आदि तो, उत्पादन इस प्रकार दिखाई देगा: 2 4 6 8 10 3 9 5 7

उत्तर

6

apply पाश और mod का उपयोग करना:

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

याका उपयोग कर == के बजाय, @ZheyuanLi ने सुझाव दिया:

unique(unlist(sapply(y, function(i) x[!as.logical(x%%i)]))) 

इसी दृष्टिकोण expand.grid का उपयोग कर के बजाय लागू होते हैं:

xy <- expand.grid(x, y) 
unique(xy[ xy[,1]%%xy[,2] == 0, 1]) 
0

एक अन्य विकल्प

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 
है
संबंधित मुद्दे