2017-08-24 72 views
0

刪除樣本假設有一個向量aa = c(1,1,1,2,2,2),我品嚐到這兩個隨機元素,例如,12,所以我得到一個樣本c(1,2),姑且稱之爲bb[R如何從矢量

現在R中有一種方法可以從矢量aa中刪除此樣本。 12這裏不是位置矢量和aa[aa != bb]將刪除整個載體,因爲12覆蓋所有元素aa。我怎樣才能從這個矢量中刪除一個12,所以aa變成c(1,1,2,2)

+0

一種解決方案是創建一個新列,' id「,然後根據」id「而不是」aa「進行抽樣和刪除。 – ulfelder

回答

0

有一個名爲vecsets,做你問什麼包:

vecsets::vsetdiff(c(1,1,1,2,2,2), c(1,2)) 
# [1] 1 1 2 2 
0

也許使用沿着aa指數的採樣bb

aa = c(1,1,1,2,2,2) 

set.seed(42) 
#Sample two indices along aa 
inds = sample(seq_along(aa), 2) 

bb = aa[inds] 
bb 
#[1] 2 2 

#Everything in aa except bb 
aa[-inds] 
#[1] 1 1 1 2