繁体   English   中英

R如何将数字转换为带有预定义标签的因子

[英]R How to convert a numeric into factor with predifined labels

labs = letters[3:7]
vec = rep(1:5,2)

如何获得水平为“ c”,“ d”,“ e”,“ f”,“ g”的因子?

您可以执行以下操作:

labs = letters[3:7]
vec = rep(1:5,2)
factorVec <- factor(x=vec, levels=sort(unique(vec)), labels = c( "c", "d", "e", "f", "g"))

我对unique(vec)进行了排序,以使结果一致。 unique()将根据元素的首次出现返回唯一值。 通过指定顺序,代码将变得更加健壮。

同样,通过同时指定级别和标签,我认为代码将变得更具可读性。

编辑

如果使用?factor查看文档,则会发现:

等级
x可能采用的值的可选向量(作为字符串)。 默认值是as.character(x)所采用的唯一值集,并按x的升序排序。 请注意,可以将此集合指定为小于sort(unique(x))

因此,您可以注意到因子派系本身内部进行了一些排序。 但是我认为应该添加级别信息,以使代码更具可读性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM