首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R从因子类型向量中移除整数元素。

R从因子类型向量中移除整数元素。
EN

Stack Overflow用户
提问于 2018-11-07 11:35:58
回答 2查看 67关注 0票数 1

我有向量foo

代码语言:javascript
复制
> 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"?所以我得到:

代码语言:javascript
复制
> foo_removed

 984      985      986      987      988      989      990
cluster4 cluster4 cluster1 cluster1 cluster1 cluster5 cluster5

Levels: cluster1  cluster4 cluster5 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-07 11:43:29

我们可以使用!is.na(as.numeric())来识别数字字符串并删除它们。

代码语言:javascript
复制
onlynumbers <- "123.4"
onlyletters <- "abcd."
strings <- c(onlynumbers, onlyletters)
!is.na(as.numeric(strings))
[1]  TRUE FALSE

如你所见,这是可行的,现在移除

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2018-11-07 11:57:32

来补充格皮尔的答案。

代码语言:javascript
复制
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  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53188698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档