我有向量foo
:
> foo
983 984 985 986 987 988 989 990
cluster4 cluster4 cluster4 cluster1 cluster1 cluster1 cluster5 cluster5
Levels: cluster1 cluster4 cluster5
typeof(foo)
"integer"
class(foo)
"factor"
如何删除元素“ 983”?所以我得到:
> foo_removed
984 985 986 987 988 989 990
cluster4 cluster4 cluster1 cluster1 cluster1 cluster5 cluster5
Levels: cluster1 cluster4 cluster5
答案 0 :(得分:1)
我们可以使用!is.na(as.numeric())
来识别数字字符串并将其删除。
onlynumbers <- "123.4"
onlyletters <- "abcd."
strings <- c(onlynumbers, onlyletters)
!is.na(as.numeric(strings))
[1] TRUE FALSE
如您所见,这是可行的,现在删除
result <- strings[is.na(as.numeric(strings))]
> result
[1] "abcd."
编辑,您应该先使用as.character.factor
将因子转换为字符,然后才能使用as.factor
编辑2 保留您可以使用的名称names(result) <- names(strings)[is.na(as.numeric(strings))]
答案 1 :(得分:0)
补充gpier的答案。
foo <- as.character.factor(foo)
foo_removed <-foo[-c(1)]
foo_removed <- as.factor(foo_removed)
> foo_removed
cluster4 cluster4 cluster1 cluster1 cluster1 cluster5 cluster5
Levels: cluster1 cluster4 cluster5