Tag: 水平

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

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" 我认为在编写脚本时仍然可以访问级别('a','b','c'),但这不起作用: > df$f=='a' [1] […]

在不改变值的顺序的情况下重新排列因子的水平

我有一些数字variables和一些分类factorvariables的数据框架。 这些因素的级别顺序不是我想要的。 numbers <- 1:4 letters <- factor(c("a", "b", "c", "d")) df <- data.frame(numbers, letters) df # numbers letters # 1 1 a # 2 2 b # 3 3 c # 4 4 d 如果我改变关卡的顺序,那么这些关键字就不再有相应的数字了(我的数据从这个意义上说是无稽之谈)。 levels(df$letters) <- c("d", "c", "b", "a") df # numbers letters # 1 1 d # 2 2 c # […]

在子集数据框中放置因子水平

我有一个数据框包含一个因素。 当我使用subset()或其他索引函数创build此数据框的subset() ,会创build一个新的数据框。 但是,因素variables保留了所有的原始级别 – 即使它们不存在于新的数据框架中。 这在创build多面绘图或使用依赖于因子级别的函数时会产生麻烦。 在我的新数据框架中从一个因素中删除层次的最简洁的方法是什么? 这是我的例子: df <- data.frame(letters=letters[1:5], numbers=seq(1:5)) levels(df$letters) ## [1] "a" "b" "c" "d" "e" subdf <- subset(df, numbers <= 3) ## letters numbers ## 1 a 1 ## 2 b 2 ## 3 c 3 ## but the levels are still there! levels(subdf$letters) ## [1] "a" "b" "c" […]