我有向量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 发布于 2018-11-07 11:43:29
我们可以使用!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))]的名称
发布于 2018-11-07 11:57:32
来补充格皮尔的答案。
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 https://stackoverflow.com/questions/53188698
复制相似问题