r - 如何创建一个因子但保留基础值,而不仅仅是整数代码?

a <- factor(2:4, labels=c("a", "b", "c"))
a
## [1] a b c
## Levels: a b c

as.numeric(a)
## [1] 1 2 3

我想删除标签并获取数值 2, 3, 4,但 as.numeric(a) 的结果是 1 2 3。不要告诉我答案是 as.numeric(a) + 1。谢谢。

最佳答案

由于您没有提供任何更广泛的背景来说明为什么要尝试此操作,因此以下内容只是对可能有用的内容的猜测:

a<-factor(2:4, labels=c("a", "b", "c"))
> names(a) <- as.character(2:4)
> a
2 3 4 
a b c 
Levels: a b c
> as.integer(names(a))
[1] 2 3 4

我不能说我以前使用过“命名因子”,坦率地说,这个概念对我来说有点奇怪。

如果你真的不想要一个因素,那么只需这样做:

a <- 2:4
names(a) <- letters[1:3]

可能就足够了。

https://stackoverflow.com/questions/23739884/

相关文章:

timeout - Marklogic:XDMP-EXTIME 错误(超出时间限制)

vba - UDT 能否以任何方式用作方法参数?

ada - 如何明确指定字 rune 字

progress-4gl - 查询仅在运行时才知道名称的数据库表

d3.js - 使用 d3 v4.0 重新创建集群力布局

object-detection - 使用 >450K 个实例训练 Dlib 对象检测

angularjs - 输入文本内的 Angular 清除图标

sql - 带日期时间的 MSSQL 转换不输出 Z 时区指示符

git - 在 Mac OS 10.7.5 上安装 Git

sql - 如何获取包含所有 dba 软件包描述的列表