#r
#r
Вопрос:
Я хотел бы удалить из вектора wine
ниже вектора b=c(1,0)
.
Результат должен быть d=c(1,1,0)
.
library(gtools) wine=c(1,1,1,0,0) x=combinations(5,2,v=wine,set=FALSE,repeats.allowed=FALSE) y=matrix(NA,nrow(x),3)
Я хочу найти дополнительную матрицу y
x
.
Спасибо, что уделили мне время.
Комментарии:
1. Я не понимаю, какое
combinations
отношение это имеет к описанию проблемы.2. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.
Ответ №1:
Ниже используется функция, которую я разместил здесь. Функция находит, где в y
векторе x
происходит возврат вектора индекса в y
.
Во-первых, выясните, где b
это происходит wine
. Затем местоположение используется для удаления найденного вектора.
occurs lt;- function(x, y) { m lt;- length(x) n lt;- length(y) candidate lt;- seq.int(length = n - m 1L) for (i in seq.int(length = m)) { candidate lt;- candidate[x[i] == y[candidate i - 1L]] } candidate } wine lt;- c(1,1,1,0,0) b lt;- c(1,0) i lt;- occurs(b, wine) d lt;- wine[-(i seq(b) - 1L)] d #[1] 1 1 0