You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何将Dataframe中指定分类合并为新的other分类

R语言实现分类合并+生成目标列联表的方案

以下是两种常用的可直接落地的实现方式:

方案1:tidyverse套件实现(语法友好,适合新手)

你需要先安装并加载tidyverse包,没有安装的话先运行install.packages("tidyverse")安装。

library(tidyverse)

# 1. 对living_arrangements字段做重分类
df_processed <- df %>%
  mutate(
    living_arrangements = case_match(
      living_arrangements,
      c("Alternate between parents and partner", "College or student accomodation") ~ "Other",
      .default = living_arrangements
    )
  )

# 2. 生成目标结构的列联表
result <- df_processed %>%
  count(living_arrangements, loneliness_level) %>%
  pivot_wider(
    names_from = loneliness_level,
    values_from = n,
    values_fill = 0
  )

运行完成后result就是你需要的目标数据框结构。

方案2:Base R实现(无需安装额外包)

如果你不想加载第三方包,可以用基础R函数实现:

# 1. 重分类操作
# 如果你的living_arrangements是因子类型,用下面的代码:
levels(df$living_arrangements)[levels(df$living_arrangements) %in% 
  c("Alternate between parents and partner", "College or student accomodation")] <- "Other"
# 如果你的living_arrangements是字符类型,用下面的代码:
# df$living_arrangements[df$living_arrangements %in% 
#  c("Alternate between parents and partner", "College or student accomodation")] <- "Other"

# 2. 生成列联表
result <- as.data.frame.matrix(table(df$living_arrangements, df$loneliness_level))
# 调整列名匹配你给出的示例结构
result <- cbind(living_arrangements = rownames(result), result)
rownames(result) <- NULL

平时习惯用管道式操作选方案1即可,追求轻量化运行选方案2即可。

内容的提问来源于stack exchange,提问作者Tony H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:27:01