首页 > 解决方案 > 在 R 中用模式查找和替换文本

问题描述

我在下面有一个 df,我只需要在包含任何带有 [...] 的文本的 FRUIT 列下删除。请看我的df

日期 水果 地点 价值
2010-01-01 苹果 [111-112, 1100, 1151-1152] 美国 2
2010-01-01 菠萝 [22] 美国 12

所以理想情况下,我希望我的 df 看起来像这样

日期 水果 地点 价值
2010-01-01 苹果 美国 2
2010-01-01 菠萝 美国 12

我尝试使用gsub,但它不工作。

df$FRUIT<-gsub("[*]", "", df$FRUIT)

标签: r

解决方案


也许您可以尝试gsub如下

df$FRUIT <- gsub("\\s\\[.*\\]","",df$FRUIT)

你会得到

> df
        DATE    FRUIT LOCATION VALUE
1 2010-01-01    Apple      USA     2
2 2010-01-01 Pinapple      USA    12

数据

> dput(df)
structure(list(DATE = c("2010-01-01", "2010-01-01"), FRUIT = c("Apple [111-112, 1100, 1151-1152]",
"Pinapple [22]"), LOCATION = c("USA", "USA"), VALUE = c(2L, 12L
)), class = "data.frame", row.names = c(NA, -2L))

推荐阅读