我的数据是这样的:
Item | Process
ABC | XYZ-ABC
AC | XYZ-AC
AD | XYZ-AD
AEM | XYZ-AEM
AF | XYZ-AF
AG | WXY-AG
AHSG | WXY-AHSG
AI | WXY-AI
AJ | WXY-AJ
Process
列以某个字符串开头,Item
列中的值附加到该字符串。仅保留起始字符串。 Item
列中的值及其长度可以变化。我想按行进行gsub()
,其中模式是Item
中的值,替换为”(空白),目标为Process
列。
我不能只删除Process
中“-”之后的所有内容,因为分隔符可以更改。我不在乎是否只要保留其余的定界符就可以了。另外,Process
中起始字符串的长度可以变化。
这是我到目前为止使用data.table
尝试过的内容:
myData[grep(Item, Process), gsub(Item, "", Process)]
这适用于第一行,但其余所有行保持不变。我知道这是因为gsub()
只能采用单个模式,而我要提供多个模式。我正在寻找一种非常有效,快捷的方法来实现这一目标。我的数据可以有> 400万行。这将在Shiny应用程序中发生,并且我不想让用户在这种情况下等待。请帮助!
stringr::str_replace(df$Process, df$Item, "")