r - 如何删除数据框中列名的特定部分?

标签 r gsub

我的列名称采用以下格式:

col= c('UserLanguage','Q48','Q21...20','Q22...21',"Q22_4_TEXT...202")

我想获取列名,但不包含...之后的所有内容

[1] "UserLanguage"    "Q48"             "Q21"        "Q22"        "Q22_4_TEXT"

我不知道如何编码。我找到了这篇文章here但我不确定如何在我的情况下指定模式。

最佳答案

您可以使用gsub

gsub("\\...*","",col)

#[1] "UserLanguage" "Q48"     "Q21"        "Q22"     "Q22_4_TEXT"  

或者您可以使用stringr

library(stringr)

str_remove(col, "\\...*")

由于 . 匹配任何字符,因此我们需要“转义”(\) 来准确指定我们想要在正则表达式中匹配的内容(并且不使用特殊的. 的行为)。因此,为了匹配句点,我们需要 \.。但是,反斜杠 (\) 用于转义正则表达式中的特殊行为(例如,字符串中的转义符号)。因此,要创建正则表达式,我们需要一个额外的反斜杠 \\. 在本例中,我们想要匹配其他句点,因此我们可以在此处添加它们,因此 \\.. .。然后,* 指定前一个表达式(三个句点的所有内容)可能出现 0 次或多次。

关于r - 如何删除数据框中列名的特定部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70888936/

相关文章:

r - 将一行中的值添加到 R 中的前一个

r - 每个id两个周期的 "score"之差

r - 分析 Shiny 的服务器日志以创建使用情况统计信息

r - 如何对列中的值求和,按 R 中行中的名称分组,而不列出每个名称?

ruby - 为什么在 Ruby 中使用 "gsub"不删除管道?

从 R 中的字符串中删除数字

regex - 使用 gsub 删除多个逗号和尾随逗号

regex - 使用正则表达式在折叠的单词之间插入空格

r - 有选择地删除尾随字符串

r - ggplot2:在每个方面从最高到最低重新排列条形