R语言代码解析:提取既往史中的定量指标
这段代码的功能是将数据框e中的'既往史'列进行处理,提取出特定的定量指标,并将其存储在相应的列中。
首先,创建一个字符向量aa,其中包含了所需的定量指标的名称:
aa <- c('食物过敏史', '药物过敏史', '神经系统症状', '神经精神症状', '内分泌系统症状', '呼吸系统症状', '循环系统症状', '消化系统症状', '泌尿系统症状', '血液循环症状', '生殖系统症状', '运动系统症状', '输血史', '手术外伤史', '外伤', '手术名称及时间', '手术', '预防接种史', '平素健康状况', '传染病史', '其他传染病史') #选取所需的定量指标的名称
然后,通过一个for循环,对数据框e中的每一行进行处理:
for(i in 1:nrow(e)){
tmp <- NULL
tmp <- e[i, "既往史"]
tmp <- strsplit(tmp, "
| ", fixed = FALSE, perl = T, useBytes = FALSE)[[1]] #按规律进行切分
tmp <- tmp[tmp != ""]
for(j in aa){
if(length(tmp[grep(j, tmp)]) == 0){
e[i, j] <- ""
}else{
e[i, j] <- tmp[grep(j, tmp)][1]
e[i, j] <- gsub(j, "", e[i, j]) ##去掉检查指标名称信息
#e[i, j] <- gsub(":|\:|mm|%|m/s|;|ml/b|b/min|L/min| ", "", ultrasound[i, j]) #将其单位替换为空值
}
}
cat(i, "/", j, "\r")
}
这段代码的具体步骤如下:
- 循环遍历数据框e中的每一行(i)。
- 将当前行的'既往史'列赋值给变量tmp。
- 使用strsplit函数对tmp进行切分,按照"
| "的规则进行切分。这将把'既往史'内容按照换行符和空格进行分割,得到一个列表。
- 过滤掉tmp中为空的元素。
- 循环遍历字符向量aa中的每个定量指标(j)。
- 使用grep函数查找tmp中包含当前定量指标的子字符串。
- 如果没有找到包含定量指标的子字符串,则将数据框e中当前行的对应列赋值为空字符串。
- 如果找到了包含定量指标的子字符串,则将第一个匹配的子字符串赋值给数据框e中当前行的对应列,并使用gsub函数去掉子字符串中的定量指标名称。
- 输出当前行的处理进度。
总结来说,这段代码的目的是对数据框中的'既往史'列进行处理,提取出特定的定量指标,并将其存储在相应的列中。
这段代码可以帮助你从复杂的'既往史'文本中提取出有用的信息,并将这些信息存储在单独的列中,方便后续分析和处理。
原文地址: https://www.cveoy.top/t/topic/pguc 著作权归作者所有。请勿转载和采集!