0

私のおもちゃの問題では、整数で作られたベクトルがあり、ベクトルにもある項aから効率的に削除したいと考えています。コードを書きましたab

newa=NULL
for (j in 1:length(a))
   if (min(abs(a[i]-b))>0) newa=c(newa,a[i])

しかしこれはひどい…

4

2 に答える 2

3

intersect、などを使用できますsetdiff( を参照?setdiff)。

a <- 1:10
b <- c(2, 3, 5, 7)

setdiff(a, b)
# [1]  1  4  6  8  9 10

または、単に使用することもできます%in%:

a[!(a %in% b)] # (a %in% b) is TRUE in index i if a[i] is in b.
于 2012-07-16T01:56:08.913 に答える
2

Mathematical.coffee のように指を軽くしているので、質問に答えることはできません :P

私は %in% を使ってこれをよく行います。そして、Stephen Turner から、それをさらに簡単にする素晴らしいコードを入手しました。

## Returns a logical vector TRUE for elements of X not in Y
"%nin%" <- function(x, y) !(x %in% y)
于 2012-07-16T02:03:51.343 に答える