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

如何在tidyverse管道风格代码中为IQ变量添加cut分组?

解决tidyverse管道中对IQ分组生成频率表的问题

问题背景

需要保持tidyverse管道风格的代码,以便后续格式化表格。现有代码生成的IQ频率表因IQ取值过多而过宽,希望通过cut()函数结合指定breaks对IQ进行分组,已掌握Base R实现方式,但无法将分组逻辑融入管道代码中。

原管道代码:

datafile %>%
  select(Var1, IQ) %>%
  with(.,addmargins(table(.))) %>%
  kbl(caption = "Var1 with IQ") %>%
  kable_classic()

Base R实现分组的代码:

table(datafile$Var1,cut(datafile$IQ,breaks=c(70,85,100,115,130,145)))

解决方案

提供两种符合tidyverse管道风格的实现方式:

方式一:先通过mutate()生成分组变量

先将IQ转换为分组后的新变量,再生成带边际汇总的频率表:

datafile %>%
  select(Var1, IQ) %>%
  # 对IQ进行分组,生成新变量IQ_group
  mutate(IQ_group = cut(IQ, breaks = c(70, 85, 100, 115, 130, 145))) %>%
  select(Var1, IQ_group) %>%
  with(., addmargins(table(.))) %>%
  kbl(caption = "Var1 with grouped IQ") %>%
  kable_classic()

方式二:直接在table()中对IQ做分组

无需生成新变量,直接在table()函数内对IQ应用cut():

datafile %>%
  select(Var1, IQ) %>%
  with(., addmargins(table(Var1, cut(IQ, breaks = c(70, 85, 100, 115, 130, 145))))) %>%
  kbl(caption = "Var1 with grouped IQ") %>%
  kable_classic()

两种方式均能保持管道的整洁性,同时实现IQ的分组,避免表格过宽的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 05:40:22