【发布时间】:2023-04-09 04:18:01
【问题描述】:
首先:我不确定这是否适合我的场景。
在从0 到3 的原始数据中编码有 4 个可能的复选标记(“A”、“B”、“C”、“D”)。假设他们是年龄组( 30 岁以下、31 岁至 50 岁……)。不,我想要像 value labels 之类的东西(比如 SPSS 提供),以便稍后在汇总表或绘图中使用它们。据我了解,R 为此提供了级别。
问题现在是数据中目前不存在"A"(编码为0)。但这在未来可能会改变,因为数据还没有固定。
如何为数据中当前不存在的值(本例中为0)设置级别(SPSS 含义:值标签)?
> set.seed(100)
> s <- sample(c(seq(1,3), NA), 10, replace=TRUE)
> f <- factor(s)
> f
[1] 2 2 3 1 2 2 <NA> 2 3 1
Levels: 1 2 3
> levels(f) <- c("A", # = 0
+ "B", # = 1
+ "C", # = 2
+ "D") # = 3
> f
[1] B B C A B B <NA> B C A
Levels: A B C D
【问题讨论】:
-
见
?levels的最后一个例子 -
@eddi 我不明白那个例子。
-
有什么不明白的——这正是你要解决的问题...
levels(f) = list(A = 0, B = 1, C = 2, D = 3) -
试试
f <- factor(s, levels = 0:3, labels = c("A", "B", "C", "D"))
标签: r