在R语言中将特定向量转换为数据框的实现方法
向量转指定格式数据框的实现方法
方法一:使用Base R(无需额外包)
# 原始向量 asd <- c("ABC\tCat + Catt1") # 按制表符拆分,分离ColA和待处理的ColB文本 split_result <- strsplit(asd, "\t")[[1]] col_a_value <- split_result[1] col_b_text <- split_result[2] # 拆分ColB文本为单个元素 col_b_values <- strsplit(col_b_text, " + ")[[1]] # 构建目标数据框 df <- data.frame( ColA = rep(col_a_value, length(col_b_values)), ColB = col_b_values, stringsAsFactors = FALSE ) # 输出结果 df
方法二:使用tidyverse工具包(代码更简洁)
如果你习惯用tidyverse生态,可以用separate和separate_rows一步到位:
library(tidyverse) asd <- c("ABC\tCat + Catt1") df <- tibble(raw_content = asd) %>% # 按制表符拆分出ColA和ColB列 separate(raw_content, into = c("ColA", "ColB"), sep = "\t") %>% # 将ColB的多个值拆分成单独行 separate_rows(ColB, sep = " + ") # 输出结果 df
两种方法运行后都会得到你需要的结果:
ColA ColB 1 ABC Cat 2 ABC Catt1
内容的提问来源于stack exchange,提问作者mapvin vin
相关产品推荐
相关产品推荐

