2016-11-03 21 views
-1

在R中我有一些向量。如何刪除r中的一個數據

x <- c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0) 

我想刪除x矢量中的「0」,但它刪除了此矢量中的所有「0」。 實施例

x=x[!x %in% 0)] 

在該載體中的所有零已經除去在X矢量

對於實施例在Python

x = [0,1,0,1,0,0,0,1] 
x.remove(0) 
x 
[1, 0, 1, 0, 0, 0, 1] 
x.remove(0) 
x 
[1, 1, 0, 0, 0, 1] 
+0

1)你有一個分機(2)你在'x' = x [!(x%in%0)]中缺少一個左括號''(3)你的期望輸出是什麼? – vagabond

+0

你想要的結果是什麼? – SparkAndShine

+0

謝謝。我在項目中複製我的代碼並編輯一些變量以簡化這個問題。這裏的代碼是不正確的。謝謝你的建議。 –

回答

3

我們可以使用match如果您有任何其他的號碼刪除特定數量

x <- c(1, 0, 1, 0, 0, 0, 1) 
x[-match(1, x)] 

#[1] 0 1 0 0 0 1 

的第一次出現例如5在下面的情況下,刪除,

x <- c(1, 0, 5, 5, 0, 0, 1) 
x[-match(5, x)] 
#[1] 1 0 5 0 0 1 
+1

謝謝你的建議。我能行。 –

0

您可能需要which.min()

其確定索引的矢量的第一個最小值:

x <- c(0,1,0,1,0,0,0,1) 
x <- x[-which.min(x)] 
x 
# [1] 1 0 1 0 0 0 1 

如果您的載體含有比其他元素0或1:x <- x[-which.min(x != 0)]

相關問題