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

如何将sjmisc_descr类对象转换为含13列的tibble?

解决sjmisc::descr生成嵌套数据框的问题

问题原因

你用mutate(mpg.stats = descr(mpg))时,descr()被逐行调用,导致每一行都生成一个包含所有统计量的子数据框,最终形成嵌套结构。

解决方案

情况1:仅获取mpg的统计摘要(1行13列的tibble)

直接对整个mpg向量调用descr(),再转成tibble即可:

library(dplyr)
library(tibble)
library(sjmisc)

df <- descr(mtcars$mpg) %>% as_tibble()

# 查看结构
str(df)

情况2:将统计量作为列添加到原数据框(每一行重复统计值)

先计算统计量,再通过非标准计算将所有统计量转为独立列:

# 计算mpg的统计量并转为列表
mpg_stats <- descr(mtcars$mpg) %>% as.list()

# 给原数据框添加所有统计列
df <- mtcars %>% 
  mutate(!!!mpg_stats) %>% 
  # 可选:只保留统计列,去掉原数据列
  select(names(mpg_stats))

str(df)

或者用bind_cols直接合并统计结果:

df <- mtcars %>% 
  bind_cols(descr(mtcars$mpg) %>% as_tibble()) %>% 
  # 可选:去掉原mpg列
  select(-mpg)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 14:22:08