![](/img/trans.png)
[英]Removing everything from a string column conditional on another string column in R
[英]Removing everything after and including “[” from a string in R
我正在尝试修改某些数据集的列名。 每列的命名类似于此字符串:
Patient Age [70: Age]
首先,我想删除[70:Age]
,这样我就只有Patient Age
,然后我想用下划线替换字符串中的所有空格实例。
我知道如何用gsub()
用下划线替换空格,但我不知道如何在[...
之后删除所有内容。
我不断收到“ invalid regular expression
”错误,因为正则表达式也需要]
。
如果你能帮助我正确的语法,请告诉我。
我知道下面的代码删除了标点符号,但我不希望列名中出现“70 岁”
gsub("[[:punct:]]", "", names(full_data)[1])
[1] "Patient Age 70 Age"
或者,您可以使用嵌套sub
操作:
sub("\\s", "_", sub("\\s\\[.*?\\]", "", x))
第一个sub
(右侧)删除[...]
表达式之前的空格以及[...]
表达式本身,第二个sub
(左侧)将剩余的空格替换为_
。
我们可以使用base R
中的trimws
和chartr
chartr(" ", "_", trimws(x, whitespace = "\\s*\\[.*"))
#[1] "Patient_Age"
x <- "Patient Age [70: Age]"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.