有条件地删除向量中的元素

Gri*_*Rob 4 r vector

我有一个名为的字符向量Vector,这是输出:

[1] "140222" "140207" "0" "140214" "140228" "140322" "140307" "140419" "140517" "140719" "141018" "150117" "160115"
Run Code Online (Sandbox Code Playgroud)

我想有条件地删除与其他元素不同的唯一元素,在本例中为0.

我试过这种方法,但它似乎不起作用:

for (i in 1:length(Vector) {
    if (nchar(Vector[i]) <=3) 
    {remove(Vector[i])}
}
Run Code Online (Sandbox Code Playgroud)

错误是:

删除错误(Vector [i]):...必须包含名称或字符串".

MDe*_*MDe 13

首先,您不需要为此使用循环.这将做你想要的:

Vector <- Vector[nchar(Vector) > 3]

如果你想专门删除"0",你会这样做:

Vector <- Vector[Vector != "0"]

导致错误是因为您在remove内部使用元素Vector而不是在对象上使用.换句话说,remove可以Vector从内存中删除所有内容,但不删除它的元素.其他对象也是如此.