R如何使用预先标记的数字将数字转换为因子

时间:2016-03-28 09:53:45

标签: r r-factor

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

如何获得级别为“c”“d”“e”“f”“g”的因子?

1 个答案:

答案 0 :(得分:1)

您可以这样做:

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(唯一(x))

所以你可以注意到因子派本身内部有一些排序。但我认为应该添加级别信息,以使代码更具可读性。