【问题标题】:How do I replace multiple strings in a R dataframe column如何替换 R 数据框列中的多个字符串
【发布时间】:2017-06-30 15:34:43
【问题描述】:

我在数据框中有一列定义不明确。例如,我有:

 > mydata$column1<-c("abcAppledef","gsApple123hilhj","stBananaewfs","sfesBanana123sfeft",
"stwefPearsfet","stwfePearabcseft","wefCarwefeEef","wefwaCarWFEe","wefaCarEFWefe")

我想通过用通配符替换字符串来重新定义列,结果应该是这样的:

> mydata$column1<-c("Apple","Apple","Banana","Banana","Pear","Pear","Car","Car","Car")

我正在使用

> mydata$column1<-gsub('.*Apple.*','Apple',mydata$column1)

> mydata$column1<-gsub('.*Banana.*','Banana',mydata$column1)

> mydata$column1<-gsub('.*Pear.*','Pear',mydata$column1)

> mydata$column1<-gsub('.*Car.*','Car',mydata$column1)

但我有许多不同类型的模式,我还需要将其应用于多个表。有没有更有效的方法来做到这一点? 也许是一个查找表?

谢谢。

【问题讨论】:

  • 你有完整的目标字符串列表吗?例如,targets = c("Apple", "Banana", "Pear")?如果是这样,我只会更改它们存在的字符串。 for (fruit in targets) {x[grep(fruit, x) &lt;- fruit}.

标签: r


【解决方案1】:

使用这个 Remove numbers from alphanumeric characters

gsub('[0-9]+', '', x)
gsub('st', '', x)

恐怕您需要在一系列 gsub 中对其进行清理才能获得 100% 干净的数据

【讨论】:

  • 谢谢。但“st”只是一个例子,它们并没有真正的模式。我会修改我的问题。
  • 您可以反转问题..而不是查看要替换和清理的模式,您可以在几个值(水果)中搜索模式
猜你喜欢
  • 1970-01-01
  • 2022-11-12
  • 1970-01-01
  • 2023-02-23
  • 2014-05-04
  • 1970-01-01
  • 2014-02-06
  • 2017-08-17
  • 1970-01-01
相关资源
最近更新 更多