我有一个名为Vector
的字符向量,这是输出:
[1] "140222" "140207" "0" "140214" "140228" "140322" "140307" "140419" "140517" "140719" "141018" "150117" "160115"
我想有条件地删除与其他元素不同的唯一元素,在本例中为0
。
我试过这种方法,但似乎没有用:
for (i in 1:length(Vector) {
if (nchar(Vector[i]) <=3)
{remove(Vector[i])}
}
错误是:
删除时出错(Vector [i]): ...必须包含名称或字符串“。
答案 0 :(得分:13)
首先,您不需要为此使用循环。这将做你想要的:
Vector <- Vector[nchar(Vector) > 3]
如果你想专门删除&#34; 0&#34;,你会这样做:
Vector <- Vector[Vector != "0"]
导致错误的原因是您在remove
内的元素上使用Vector
,而不是在对象上。换句话说,remove
可以从内存中删除所有Vector
,但不能删除它的元素。其他对象也是如此。
答案 1 :(得分:1)
如果您以交互方式使用R(否则不建议使用R - 请参阅此处:Why is `[` better than `subset`?),您也可以写:
subset(Vector, nchar(Vector) >3)