【发布时间】:2010-02-26 15:00:55
【问题描述】:
每次我必须重新编码一组变量时,我都会考虑使用 SPSS 重新编码功能。我必须承认这很简单。 car 包中有一个类似的 recode 函数,它可以解决问题,但我们假设我想用 factor 完成任务。
我有 data.frame 有几个变量,值范围从 1 到 7。我想“反转”变量值,因此用 7s 替换 1s,用 6s 替换 2s,用 5s 替换 3s 等。我可以利用 factor 函数:
# create dummy factor
set.seed(100)
x <- as.factor(round(runif(100,1,7)))
y <- factor(x, levels = rev(levels(x)))
如果我跑步:
> levels(x)
[1] "1" "2" "3" "4" "5" "6" "7"
> levels(y)
[1] "7" "6" "5" "4" "3" "2" "1"
当我想重新编码不具有相等水平的因素时,问题就开始了。如果某个因子 z 的级别为 c("1", "3", "4", "6", "7"),我是否有机会通过使用 factor 函数“反转”级别,例如 1=7、2=6、3=5 等?
其他高效的重新编码功能就足够了!
【问题讨论】: