如何删除 R 中文本字符串中 # 后面的注释

How to remove comments following # in a text string in R

我有一个文本字符串变量,例如

string <- ' a=1, # number a is equal to 1
            b=2, # number b is equal to 2'

在删除# 后面的注释之前,我无法计算这些方程式。 是否有任何功能旨在做到这一点?还是应该使用正则表达式来处理?

是的,你可以使用正则表达式:

gsub(pattern = "#[^\\n]*", replacement = "", x = string)
# [1] " a=1, \n            b=2, "

解释:"#[^\\n]*" 匹配 # 后跟除新行 \n.

之外的任何内容

我很怀疑为什么你要这样做。可能有更好的方法来实现您的目标...

尝试使用 stringr 包:

str <- strsplit(string, split = "\n")[[1]]
str_trim(str_split_fixed(str, "#|;", 2)[, 1])

#[1] "a=1," "b=2,"

或者,例如,如果 str <- "a=1, # number a is equal to 1",则

str_trim(str_split_fixed(str, "#|;", 2)[, 1])

#[1] "a=1,"