You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中按指定关键词拆分字符向量并转换为目标数据框

实现方案

核心思路是用预定义的关键词作为匹配锚点,通过正则提取各段对应内容,再按要求生成结构化数据框,代码可直接适配你爬取得到的EN.char向量。

可直接运行的代码

# 加载依赖包
library(stringr)
library(dplyr)

# 预定义拆分关键词
split.vector <- c("Teacher", "Tutor", "Speaks", "English", "Japanese", "French", "Rate", "Video")

# 处理字符向量,如需处理爬取结果,将下方char.vector替换为你的EN.char即可
df_result <- lapply(char.vector, function(s) {
  # 提取角色信息
  role <- str_extract(s, "Teacher|Tutor")
  # 提取姓名(角色之前的所有内容)
  name <- str_remove(s, paste0(role, ".*"))
  # 提取语言段(Speaks之后、Rate之前的内容)
  lang_section <- str_extract(s, "(?<=Speaks).*?(?=Rate)")
  # 标记是否掌握对应语言
  en <- as.integer(str_detect(lang_section, "English"))
  jp <- as.integer(str_detect(lang_section, "Japanese"))
  fr <- as.integer(str_detect(lang_section, "French"))
  # 提取美元费率
  rate <- as.integer(str_extract(s, "(?<=USD )\\d+(?=Video)"))
  
  # 生成单行数据
  tibble(
    Name = name,
    Role = role,
    English = en,
    Japanese = jp,
    French = fr,
    Rate_USD = rate
  )
}) %>% bind_rows()

# 输出结果
df_result

运行效果

执行上述代码后得到的df_result完全匹配你要求的输出:

NameRoleEnglishJapaneseFrenchRate_USD
John DoeTeacher11010
JaneTutor01115

如果后续爬取的文本规则有微调,只需要调整对应正则的匹配规则即可适配。

内容的提问来源于stack exchange,提问作者Bart Yarborough

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 03:18:03