首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从R中的字符串中移除方括号和文本

如何从R中的字符串中移除方括号和文本
EN

Stack Overflow用户
提问于 2019-12-09 05:58:51
回答 3查看 2.5K关注 0票数 0

在R语言中,我遇到了处理数据帧(test_dataframe)列(test_column)值的问题,如下所示:

列中的原始字符串:

代码语言:javascript
复制
test_column
6.77[9]
5.92[10]
2.98[103]

我需要删除方括号和方括号中的任何字符,因此目标值如下:

代码语言:javascript
复制
test_column
6.77
5.92
2.98

我试过用R语言的gsub函数,但是解决它不是很幸运,有人能帮我找出答案吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-12-09 06:01:43

我会用:

代码语言:javascript
复制
input <- c("6.77[9]", "5.92[10]", "2.98[103]")
gsub("\\[.*?\\]", "", input)

[1] "6.77" "5.92" "2.98"

regex模式\[.*?\]应该匹配方括号中所有引用的术语,使用gsub将告诉R替换所有这些术语。

票数 5
EN

Stack Overflow用户

发布于 2019-12-09 06:01:14

您可以使用sub并删除方括号后的所有内容。

代码语言:javascript
复制
df$test_column <- sub("\\[.*", "", df$test_column)
df
#  test_column
#1        6.77
#2        5.92
#3        2.98

您可能希望将来自sub的输出包装为as.numeric

如果前面总是有一个数字值,如本例所示,也可以使用parse_number

代码语言:javascript
复制
readr::parse_number(df$test_column)
#[1] 6.77 5.92 2.98

数据

代码语言:javascript
复制
df <- structure(list(test_column = c("6.77[9]", "5.92[10]", "2.98[103]"
)), row.names = c(NA, -3L), class = "data.frame")
票数 3
EN

Stack Overflow用户

发布于 2019-12-09 11:51:38

我们可以使用来自str_removestringr

代码语言:javascript
复制
library(stringr)
library(dplyr)
df %>%
   mutate(test_column = str_remove(test_column, "\\[.*"))
#  test_column
#1        6.77
#2        5.92
#3        2.98
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59243261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档