R - 定义因子时的有线频率重新分配

时间:2014-03-27 12:35:18

标签: r

我需要定义一个因子和值的有线重新分配吗?!

首先定义一个矢量,具有清晰的频率。然后定义一个因子,标记为和频率改变 - 在所有输出上计数,并观察元素的新顺序。

第一个问题:我想决定这个"排名顺序" (即"Xanax""Felax""Relax")进行因子分解,(需要指定数据帧内ggplot的顺序)。那么如何保持初始元素顺序和初始元素频率?

第二个问题:WTF是那个?这是完全不一致的,还是我错过了什么?

(names <- c(rep("Xanax",5), rep("Felax",3), rep("Relax",4)))

 [1] "Xanax" "Xanax" "Xanax" "Xanax" "Xanax" "Felax" "Felax" "Felax" "Relax" "Relax" "Relax" "Relax"


(names <- factor(names, labels=c("Xanax","Felax","Relax")))

 [1] Relax Relax Relax Relax Relax Xanax Xanax Xanax Felax Felax Felax Felax
Levels: Xanax Felax Relax

1 个答案:

答案 0 :(得分:1)

这种行为来自于不定义因子的水平 - 明确定义这些因素的良好实践。

(names1 <- factor(names, levels=c("Xanax","Felax","Relax"), 
                               labels=c("Xanax","Felax","Relax")))

在您的示例中,您可以指定标签c(&#34; Xanax&#34;,&#34; Felax&#34;,&#34;放松&#34;)。但是因子级别的顺序尚未定义,因此默认值是按字母顺序排列的。 (或?factor帮助说&#34;默认值是as.character(x)采用的唯一值集,按x和#34的递增顺序排序;)

levels(factor(names))
#[1] "Felax" "Relax" "Xanax"

所以你定义了因素&#39; Felax&#39;标签&#39; Xanex&#39;。