如何从字符串中提取hashtag并导出为空格分隔单单元格的CSV文件?
问题原因
str_extract_all()返回结果为列表结构,每个列表元素对应原文本中提取到的所有hashtag组成的字符向量,直接调用write.csv会把嵌套的列表结构直接输出,无法得到单单元格空格分隔的效果。
最优解决方案
核心逻辑是先把每个列表元素的多个标签拼接为单个字符串,再导出为CSV。你可以根据自己的使用习惯选择tidyverse生态方案或者纯基础R方案:
tidyverse方案
library(stringr) library(purrr) # 原有提取逻辑 a <- c("#aaa", "#bbb", "#ccc") hashtag_pat <- "#[a-zA-Z0-9_-ー\\.]+" hashtag <- str_extract_all(a, hashtag_pat) # 核心处理:将每个列表元素的标签用空格拼接为单个字符串 hashtag_merged <- map_chr(hashtag, ~paste(.x, collapse = " ")) # 导出CSV write.csv(data.frame(hashtag = hashtag_merged), "hashtag_result.csv", row.names = FALSE)
基础R方案(无需额外安装包)
# 原有提取逻辑 a <- c("#aaa", "#bbb", "#ccc") hashtag_pat <- "#[a-zA-Z0-9_-ー\\.]+" hashtag <- str_extract_all(a, hashtag_pat) # 核心处理:将每个列表元素的标签用空格拼接为单个字符串 hashtag_merged <- sapply(hashtag, function(x) paste(x, collapse = " ")) # 导出CSV write.csv(data.frame(hashtag = hashtag_merged), "hashtag_result.csv", row.names = FALSE)
处理后导出的CSV每行会对应一个单元格,内容为对应原文本提取到的所有空格分隔的hashtag,完全符合需求。
内容的提问来源于stack exchange,提问作者Chamil Rathnayake
相关产品推荐
相关产品推荐

