2012-08-11 38 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