r - 为因子列分配数值
问题描述
我一个月前发布了这个问题,在更新 R 和 Rstudio 之后,我现在遇到了同样的问题。
我正在寻找将因子转换为水平数值数据。
因此,Prox 的一列将显示为:Far, Far, Near, On, Far, Near, Far, Far, Near, Far。
我想为这些因素分配数值,其中 Far 为 1,Near 为 2,On 为 3。
使用以下任一代码
levels(Prox)
levels(Prox) <- c(1, 2, 3)
或者
Prox_df <- Prox_df %>%
mutate(Prox_df = case_when(Prox == "Far" ~ 3,
Prox == "Near" ~ 2,
Prox == "On" ~ 1))
导致NA强制。
我已经尝试为这些因素设置级别,但这并没有分配数值。我需要将这个水平的数值用于序数模型。如果您有任何建议,请让我知道。谢谢你。
解决方案
dplyr::case_when
应该工作正常。
数据:
Prox_df <- data.frame(Prox = c("Far", "Far", "Near", "On", "Far", "Near", "Far", "Far", "Near", "Far"),
stringsAsFactors = FALSE)
dplyr::case_when
Prox_df <- Prox_df %>%
mutate(Prox_df = case_when(Prox == "Far" ~ 1,
Prox == "Near" ~ 2,
Prox == "On" ~ 3))
dplyr::重新编码
Prox_df <- Prox_df %>%
mutate(Prox_df = recode(Prox, "Far" = 1, "Near" = 2, On = 3))
基数::因子
Prox_df <- Prox_df %>%
mutate(Prox_df = factor(Prox, levels = c("Far", "Near", "On"), labels = 1:3, ordered = TRUE))
推荐阅读
- php - 无法解析 razropay 的 webhook
- excel - Excel:根据ID合并列中的内容
- java - NoResponse Received - Smack MUC Presence(进入房间)
- web-scraping - 带有 Scrapy 的 Celery 不解析 CSV 文件
- c# - 为什么我不能在方法之外创建实例
- chess - 有没有办法在 Stockfish 中查看失误、错误、错过的将死
- typescript - 如何编写具有强制属性的通用接口以及 T 中的任何可能属性?
- postgresql - 如何仅返回 to_jsonb 调用中的选定列?
- sql - 如何从oracle数据库中获取电子邮件地址
- spring-boot - “检测到不明确的搜索映射。” 在 Spring Boot 2.3.6 中实现 springfox-boot-starter 3.0.0 时抛出异常