R 如何将数字转换为具有预定义标签的因子
R How to convert a numeric into factor with predefined 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()
将 return 基于元素首次出现的唯一值。通过指定顺序,代码变得更加健壮。
另外,通过同时指定级别和标签,我认为代码将变得更具可读性。
编辑
如果您使用 ?factor
查看文档,您会发现:
级别
x 可能采用的值(作为字符串)的可选向量。默认值是 as.character(x) 采用的一组唯一值,按 x 的递增顺序排序。请注意,此集合可以指定为小于 sort(unique(x))
所以你可以注意到在因素派系本身内部有一些排序。但我认为应该添加级别信息,以提高代码的可读性。
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()
将 return 基于元素首次出现的唯一值。通过指定顺序,代码变得更加健壮。
另外,通过同时指定级别和标签,我认为代码将变得更具可读性。
编辑
如果您使用 ?factor
查看文档,您会发现:
级别
x 可能采用的值(作为字符串)的可选向量。默认值是 as.character(x) 采用的一组唯一值,按 x 的递增顺序排序。请注意,此集合可以指定为小于 sort(unique(x))
所以你可以注意到在因素派系本身内部有一些排序。但我认为应该添加级别信息,以提高代码的可读性。