2012-08-11 97 views
1

我通過在索引向量前使用 - (減號)從向量中刪除值。像這樣:空索引向量的補碼是空索引向量

scores <- scores[-indexes.to.delete]

有時indexes.to.delete向量是空的,即N/A。所以scores載體應該保持不變。但是,當indexes.to.delete爲空時,我得到空的scores矢量。

例子:

x <- c(1, 2, 3); 
y <- c(4, 5, 6); 
indexes.to.delete <- which(y < x); # will return empty vector 
y <- y[-indexes.to.delete]; # returns empty y vector, but I want y stay untouched 

我可以編寫一個if語句檢查是否indexes.to.delete是空的,但我想知道是否有一個更簡單的方法?

+0

你並不需要把在R. – Dason 2012-08-11 15:23:15

+0

關閉分號其實我注意到,離開分號了沒有產生錯誤。我想這是一個我不得不忘記的習慣。謝謝。 – 2012-08-11 20:57:31

回答

3

也許使用;

x <- c(1, 2, 3) 
y <- c(4, 5, 6) 
y[!y<x] 
> y[!y<x] 
[1] 4 5 6 

x <- c(1, 2, 3) 
y <- c(4, 1, 6) 
> y[!y<x] 
[1] 4 6 
> 
+2

基本上ttmaccer說「你不需要使用哪個,你爲什麼使用哪個?」 – Dason 2012-08-11 15:47:24

+0

我正在使用它,因爲我有相當複雜的選擇條件。 – 2012-08-11 20:56:15