You need to enable JavaScript to run this app. R语言生成列名与最大字符串长度拼接串的更简洁实现方案
优惠活动
大模型
产品
解决方案
定价
更多

R语言生成列名与最大字符串长度拼接串的更简洁实现方案

优化实现方案

下面提供多套更简洁的实现,输出结果均和原代码完全一致:"nif C(9); dni_check C(8)"

方案1:tidyverse生态精简写法

最短写法(purrr::imap)

直接将数据框作为列表遍历,imap可以同时获取列值和列名,省去多余的类型转换步骤:

library(tidyverse)
imap_chr(df, ~ str_c(.y, " C(", max(str_length(.x)), ")")) %>% 
  str_c(collapse = "; ")

可读性优先写法(glue+across)

用glue做字符串拼接,语法更直观,适合需要后续修改格式的场景:

df %>% 
  summarise(across(everything(), ~ glue("{cur_column()} C({max(str_length(.x))})"))) %>% 
  str_c(collapse = "; ")

方案2:无依赖基础R实现

无需安装加载任何第三方包,适合极简运行环境:

paste(mapply(function(col, col_name) paste0(col_name, " C(", max(nchar(col)), ")"), df, names(df)), collapse = "; ")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 01:54:07