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

在R中使用separate_wider_delim时如何填充列编号为两位数

解决separate_wider_delim拆分列名两位数编号的问题

要实现拆分后的列名编号为两位数(如01、02),可以使用separate_wider_delim的names_glue参数自定义列名格式,结合stringr::str_pad函数对序号进行补零处理。

修改后的代码

library(tidyr)
library(stringr) # 用于序号补零

# 数据集
df <- data.frame(Group = c("A","B","C"),
                 fruits_selected = c(
                   "'Apple'+'Banana'+'Cherry'",
                   "'Peach'+'Banana'+'Apple'",
                   "'Orange'+'Banana'+'Cherry'"
                 )
)

# 拆分并生成两位数编号的列名
df2 <- df %>%
  separate_wider_delim(fruits_selected, 
                       delim = "+", 
                       names_glue = "{col}_{str_pad(i, 2, pad = '0')}")

# 查看结果
print(df2)

输出结果

#> Group fruits_selected_01 fruits_selected_02 fruits_selected_03
#>  <chr> <chr>             <chr>             <chr>            
#> 1 A     'Apple'           'Banana'          'Cherry'         
#> 2 B     'Peach'           'Banana'          'Apple'          
#> 3 C     'Orange'          'Banana'          'Cherry'

关键说明

  • names_glue参数通过模板字符串自定义拆分后的列名:
    • {col}会被替换为原列名(此处为fruits_selected);
    • {i}会被替换为拆分后的列序号(从1开始);
    • str_pad(i, 2, pad = '0')将序号转换为两位数,不足两位时在前方补0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 22:40:10