如何用R代码实现文献关键词检索及分类标记?
用R实现文献关键词分类的步骤
1. 安装并加载必要的R包
你需要两个核心包:readxl用来读取Excel文件,stringr用来处理文本匹配。在R控制台执行以下代码:
# 安装包(仅第一次需要) install.packages(c("readxl", "stringr")) # 加载包 library(readxl) library(stringr)
2. 读取你的文献Excel数据
把你的Excel文件路径替换到下面的代码里(如果文件和R工作目录在同一个文件夹,直接写文件名就行):
# 读取Excel数据 lit_data <- read_excel("你的文献数据.xlsx")
执行后可以用head(lit_data)查看前几行数据,确认标题、摘要字段的列名和你Excel里的一致(比如列名是“标题”“摘要”,代码里就要对应)。
3. 定义你的关键词列表
把需要匹配的心理学关键词放进向量里,比如:
# 替换成你的关键词 keywords <- c("正念", "认知行为疗法", "抑郁", "焦虑")
如果关键词里有特殊字符(比如括号、加号),要在前面加双反斜杠转义,比如"认知行为疗法(CBT)"要写成"认知行为疗法\\(CBT\\)"。
4. 生成关键词分类标记
用文本匹配函数判断每篇文献的标题或摘要是否包含任意关键词,生成“含关键词”/“不含关键词”的标记:
# 生成分类列 lit_data$关键词标记 <- ifelse( # 标题包含任意关键词 或者 摘要包含任意关键词 str_detect(lit_data$标题, regex(paste(keywords, collapse = "|"), ignore_case = TRUE)) | str_detect(lit_data$摘要, regex(paste(keywords, collapse = "|"), ignore_case = TRUE)), "含关键词", "不含关键词" )
paste(keywords, collapse = "|"):把关键词用|连接成正则表达式,意思是“匹配任意一个关键词”regex(ignore_case = TRUE):忽略大小写,比如“Depression”和“depression”都会被匹配到ifelse:根据匹配结果生成对应的分类文本
5. 保存分类后的结果
把处理好的数据保存回Excel(需要先安装writexl包),或者保存成CSV:
# 安装writexl包(仅第一次需要) install.packages("writexl") library(writexl) # 保存为Excel文件 write_xlsx(lit_data, "分类后的文献数据.xlsx") # 或者保存为CSV(不需要额外包) write.csv(lit_data, "分类后的文献数据.csv", row.names = FALSE)
小提示
- 先拿少量数据测试代码,确认匹配逻辑没问题再处理全量数据
- 如果摘要内容很长,
str_detect也能正常处理,不用担心性能问题
内容的提问来源于stack exchange,提问作者Pál Kolumbán
相关产品推荐
相关产品推荐

