次のような 1 つのベクトルがあるとします。
a <- c(0,0,0,1,1,1)
そして別のベクトル
b <- c(0,1,1)
ベクトル「a」から「b」ベクトル要素をどのように削除しますか?
出力は次のようになります。
a (0,0,1)
次のような 1 つのベクトルがあるとします。
a <- c(0,0,0,1,1,1)
そして別のベクトル
b <- c(0,1,1)
ベクトル「a」から「b」ベクトル要素をどのように削除しますか?
出力は次のようになります。
a (0,0,1)
私はもともとttmaccerのように解釈しましたが、コメントが表示されるようになったので、問題ははるかに単純になりました。Aのアイテムの数をBのアイテムだけ減らしたいだけで、順序はまったく関係ありません。
at <- table(a)
b2 <- c(b, 0, 1) #in case b contains no 1s or 0s
bt <- table(b2) - c(1,1)
abt <- at - bt
rep(0:1, abt)
興味深い質問:
素朴なアプローチは
test<-gsub(paste(b,collapse="~"),"",paste(a,collapse="~"))
test<-gsub("~~","~",test)
test<-as.numeric(unlist(strsplit(test,"~")))
編集:
たとえば、サンプリング方法を変更できます
idx <- sample(length(a))
サイズ3のサンプルを取りたい場合
a.sample<-a[idx[1:3]]
a.leftover<-a[-idx[1:3]]
そしてこの場合b<-idx[1:3]