如何拆分R数据框行内不同长度的多字符值 优先使用tidyverse/dplyr方案
实现方案(基于tidyverse生态)
依赖包
需要提前安装加载tidyverse套件(包含dplyr、tidyr、stringr等所需工具包):
install.packages("tidyverse") # 未安装时先执行 library(tidyverse)
处理代码
data %>% # 逐列处理字符格式的向量表达式 mutate(across(everything(), function(col_val) { # 去掉外层c()包裹符号 str_remove(col_val, "^c\\(") %>% str_remove("\\)$") %>% # 按逗号拆分元素,去除元素前后的空格 str_split(",\\s*") %>% map(trimws) })) %>% # 按最长列长度展开所有列,短列自动填充NA unnest_longer(everything(), indices_include = FALSE)
输出结果验证
运行后得到的结构和需求完全一致:
# A tibble: 2 × 2 A B <chr> <chr> 1 a1 b1 2 a10 NA
内容的提问来源于stack exchange,提问作者choij
相关产品推荐
相关产品推荐

