r - 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
解决方案
我们可以!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))]
推荐阅读
- dart - 在 CustomScrollView 中使用 StreamBuilder 和 SliverLists
- python - 尝试左对齐长列表项时调用的 linter 规则是什么?
- javascript - 如何在具有偏移数的数组上使用解构
- docker - 在同一容器中为 python 和 nodejs 多阶段构建
- excel - 每次某个单元格更改时创建一个新的日期戳?
- windows - 读取句子最后一个单词的批处理脚本
- python-3.x - 在 Pandas 中根据多个条件选择数据
- apollo - 如何使用
具有初始查询的组件? - typescript - 删除和删除有什么区别?
- mysql - Mysql 两个查询都使用“Using where & Using temporary”,但是速度有区别