R语言如何基于三个独立列表生成CSV并拆分字母数字为独立列
R语言实现方案
方法1:仅使用基础包(无需安装额外依赖)
# 1. 处理列表l:去重后拆分字母和数字 l_unique <- unique(unlist(l)) split_l <- strsplit(l_unique, "_") df <- data.frame( Letter = sapply(split_l, `[`, 1), Number = as.integer(sapply(split_l, `[`, 2)), `Values from l2` = unlist(l2), `Values from l3` = unlist(l3), check.names = FALSE ) # 2. 导出为csv文件 write.csv(df, "output.csv", row.names = FALSE, quote = FALSE)
- 先用
unique()对l去重,得到3个不重复的「字母_数字」字符串 - 用
strsplit()按下划线拆分字符串,分别提取第一部分为字母列、第二部分转为整数为数字列 - l2和l3直接转为向量合并到数据框即可,二者长度和去重后的l长度完全匹配
check.names = FALSE用来保留列名里的空格,符合要求的输出结构
方法2:tidyverse简洁写法
library(tidyverse) df <- tibble(l = unlist(l)) %>% distinct(l) %>% separate(l, into = c("Letter", "Number"), sep = "_", convert = TRUE) %>% mutate( `Values from l2` = unlist(l2), `Values from l3` = unlist(l3) ) write_csv(df, "output.csv")
内容的提问来源于stack exchange,提问作者John Huang
相关产品推荐
相关产品推荐

