r - r expss 重新编码因子
问题描述
我想使用以下示例对因子变量进行小的重新编码:https ://cran.r-project.org/web/packages/expss/vignettes/tables-with-labels.html
a<-c(1,2,1,3,5,4,1,3,2,2,1,1)
a<-factor(a,levels = c(1,2,3,4,5), labels = c("aa", "bb", "cc", "dd", "ee" ))
假设我想创建新变量 b,其中“aa”、“bb”、“cc”现在是“xx”,其余部分将被复制。似乎我无法引用以下数字:
b<-expss::recode(a,1:3~99)
因为这没有回报。所以我尝试按标签引用:
b<-expss::recode(a, c("aa", "bb", "cc")~"xx", TRUE~copy, with_labels=FALSE)
但在这种情况下,新变量仍然存储旧级别:
$levels
[1] "aa" "bb" "cc" "dd" "ee" "xx"
$class
[1] "factor"
那么仅使用“xx”、“dd”、“ee”级别获取新变量的正确方法应该是什么?
解决方案
我们可以包装droplevels
掉那些未使用的关卡
b <- droplevels(expss::recode(a, c("aa", "bb", "cc")~"xx",
TRUE~copy, with_labels=FALSE))
levels(b)
#[1] "dd" "ee" "xx"
推荐阅读
- laravel - 我想在用户配置文件中显示原因,但在用户配置文件中显示原因 ID
- sqlite - Android表创建失败(编译时:CREATE TABLE IF NOT EXISTS
- java - Redshift 服务器在 10 分钟后关闭连接
- vba - 密码 VBA 与手动输入不匹配
- ios - iOS - 在加载视图控制器之前模拟 UserDefault
- sql-server - SQL Server 代理日志错误:等待 SQL Server 恢复数据库“msdb”
- php - 从我在表单中使用的 tinymce 插件获取富文本格式文档时遇到问题
- webpack - webpack css-loader + file-loader 在 win/mac 上的不同结果
- java - 将 foreach 转换为 Java 8 过滤器流
- powershell - 如何通过 PowerShell 获取 URL 的 HTML 源代码