首页 > 解决方案 > R从因子类型向量中删除整数元素

问题描述

我有向量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 

标签: rtypeof

解决方案


我们可以!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))]


推荐阅读