簡體   English   中英

從 R 中的列名末尾刪除不定長度括號中的字符

[英]removing characters in brackets of indefinite length from end of column names in R

我在 df 中有一些列名,如下所示:

column1 (-)
column2 (unwantedstring)
column3
column4 (4)

請注意,某些列的末尾沒有不需要的括號,應保持不變。

我想去掉最后的括號和里面的任何東西(以及左括號之前的空間)以獲得:

column1
column2
column3
column4

我在下面的正確軌道上嗎?

df <- df %>%
  rename_with(~str_remove(.x, " \(*\)$"))

任何幫助,將不勝感激

您可以在此處使用sub作為基本選項:

x <- c("column1 (-)", "column2 (unwantedstring)", "column3", "column4 (4)")
output <- sub("\\s+\\(.*\\)$", "", x)
output

[1] "column1" "column2" "column3" "column4"

您也可以使用以下解決方案,但是,它有點復雜。

trimws(regmatches(x, regexpr("\\([^()]\\](SKIP*)(FAIL*)|(?<!\\()[^()]*(?!\\))", x, perl = TRUE)))

[1] "column1" "column2" "column3" "column4"

感謝蒂姆·比格萊森提供的數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM