为什么即使具有唯一级别,因素也不允许使用重复标签?

时间:2017-01-26 02:21:51

标签: r

我想定义一个因素,尽管某些级别是唯一的,但它们共享相同的标签。这仅用于输出目的。我知道不支持重复级别,但我在为一组唯一级别提供重复标签时收到警告。

要重现此警告,请输入以下代码:

var1 <- factor(c("a", "c", "b", "c"), levels = c("a", "b", "c"), labels = c("X", "X", "Y"))

产生以下警告:

Warning message:
In `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels) else paste0(labels,  :
  duplicated levels in factors are deprecated

虽然打印var1可以提供所需的和预期的输出,但不会出现&#39;等级&#39;属性现在是指定的标签。此警告中的重复级别可能是指这些级别的重复标签?:

> print(var1)
[1] X Y X Y
Levels: X X Y

是否应该重复标签,如果可以,如何在不收到警告的情况下实现?或者这可能是R中可能存在的错误或误解的警告消息(可能是描述级别及其标签的术语问题),因为警告是关于级别而不是标签,尽管原始级别与警告相矛盾是唯一的? R中是否有替代的因子实现支持一组唯一因子水平的重复标签?

0 个答案:

没有答案