在R语言中移除数据框行值字符串中的[preliminary_arm_1]部分
解决方法
在R中可以直接使用字符串替换函数gsub()批量移除[preliminary_arm_1]文本,无需手动遍历每一行(向量化操作更高效):
# 原始数据 data <- data.frame( SSN = c(204,401,101,666,777), Name_logic=c("([preliminary_arm_1][antibiotic_arm] = '1') and [was_review_done] = '1'", "[preliminary_arm_1][antibiotic_arm] = '2' and [was_review_done] = '1'", "[preliminary_arm_1][intervention_supportive_arm] = '2' and [was_review_done] = '1'", "[preliminary_arm_1][supportive_care_arm] = '1' and [was_there_an_sae] = '1'", "([preliminary_arm_1][antibiotic_arm] = '1') and [was_review_done] = '1'") ) # 执行替换操作 data$Name_logic <- gsub("\\[preliminary_arm_1\\]", "", data$Name_logic) # 查看结果 data
代码说明
gsub(pattern, replacement, x):全局替换函数,会替换x中所有匹配pattern的文本\\[preliminary_arm_1\\]:因为[和]是正则表达式中的特殊字符,需要用\\转义才能匹配原文本中的方括号- 替换为空字符串
""即可直接移除目标文本块
执行后得到的结果与预期完全一致:
SSN Name_logic 1 204 [antibiotic_arm] = '1' and [was_review_done] = '1' 2 401 [antibiotic_arm] = '2' and [was_review_done] = '1' 3 101 [intervention_supportive_arm] = '2' and [was_review_done] = '1' 4 666 [supportive_care_arm] = '1' and [was_there_an_sae] = '1' 5 777 [antibiotic_arm] = '1' and [was_review_done] = '1'
内容的提问来源于stack exchange,提问作者LivingstoneM
相关产品推荐
相关产品推荐

