This question already has answers here:
Remove part of string after “.”

(4个答案)


4年前关闭。





我有一个数据集,其中的列如下所示:

ABC|DEF|GHI,
ABCD|EFG|HIJK,
ABCDE|FGHI|JKL,
DEF|GHIJ|KLM,
GHI|JKLM|NO|PQRS,
BCDE|FGHI|JKL


.... 等等

我需要提取出现在第一个|符号之前的字符。

在Excel中,我们将结合使用MID-SEARCH或LEFT-SEARCH,R包含substr()

语法是-substr(x, <start>,<stop>)

在我的情况下,开始将始终为1。对于停止,我们需要通过|搜索。我们怎样才能做到这一点?是否有其他方法可以做到这一点?

最佳答案

我们可以使用sub

sub("\\|.*", "", str1)
#[1] "ABC"


或使用strsplit

strsplit(str1, "[|]")[[1]][1]
#[1] "ABC"


更新资料

如果我们使用@hrbrmstr中的数据

sub("\\|.*", "", df$V1)
#[1] "ABC"   "ABCD"  "ABCDE" "DEF"   "GHI"   "BCDE"


这些都是基本的R方法。没有使用外部软件包。

数据

str1 <- "ABC|DEF|GHI ABCD|EFG|HIJK ABCDE|FGHI|JKL DEF|GHIJ|KLM GHI|JKLM|NO|PQRS BCDE|FGHI|JKL"

关于r - 提取“|”之前的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38291794/

10-10 17:44