相关疑难解决方法(0)

因子水平和因子标签之间的混淆

R中因子的级别和标签之间似乎存在差异.到目前为止,我一直认为级别是因子级别的"真实"名称,标签是用于输出的名称(例如表格和图表) .显然,情况并非如此,如下例所示:

df <- data.frame(v=c(1,2,3),f=c('a','b','c'))
str(df)
'data.frame':   3 obs. of  2 variables:
 $ v: num  1 2 3
 $ f: Factor w/ 3 levels "a","b","c": 1 2 3

df$f <- factor(df$f, levels=c('a','b','c'),
  labels=c('Treatment A: XYZ','Treatment B: YZX','Treatment C: ZYX'))
levels(df$f)
[1] "Treatment A: XYZ" "Treatment B: YZX" "Treatment C: ZYX"
Run Code Online (Sandbox Code Playgroud)

我认为在脚本编写时仍可以以某种方式访问​​级别('a','b','c'),但这不起作用:

> df$f=='a'
[1] FALSE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)

但这样做:

> df$f=='Treatment A: XYZ' 
[1]  TRUE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)

所以,我的问题包括两部分:

  • 关卡和标签有什么区别?

  • 脚本和输出的因子级别是否可以有不同的名称?

背景:对于较长的脚本,使用较短因子级别的脚本似乎要容易得多.但是,对于报告和图表,这个较短的因子水平可能不够,应该用精简者名称替换.

r r-faq r-factor

95
推荐指数
2
解决办法
7万
查看次数

标签 统计

r ×1

r-factor ×1

r-faq ×1