R通过grep搜索按匹配模式生成df新列并追加匹配结果的实现问题
实现代码(R语言)
先定义输入变量,再逐模式匹配单词,对齐长度后拼接为数据框即可:
# 定义匹配模式与单词列表 patterns <- c("arm", "end", "tale") words <- c("arm", "end", "fairytale", "armchair", "deadend", "farm") # 提取每个模式对应的匹配单词列表 match_res <- lapply(patterns, function(pat) { words[grepl(pat, words)] }) # 计算所有匹配结果的最大长度,补全空值对齐各列长度 max_length <- max(lengths(match_res)) match_res_fill <- lapply(match_res, function(x) { c(x, rep("", max_length - length(x))) }) # 转换为指定结构的数据框 result_df <- setNames(data.frame(match_res_fill, check.names = FALSE), patterns)
输出验证
打印result_df即可得到要求的结构:
| arm | end | tale |
|---|---|---|
| arm | end | fairytale |
| armchair | deadend | |
| farm |
内容的提问来源于stack exchange,提问作者Witness1123
相关产品推荐
相关产品推荐

