R中的正则表达式擦除第一个空格后的所有字符?

Tho*_*wne 11 regex r

我在R中的数据看起来像这样:

USDZAR Curncy
R157 Govt
SPX Index
Run Code Online (Sandbox Code Playgroud)

换句话说,一个词,在这种情况下是Bloomberg安全标识符,后跟另一个单词,即安全类,由空格分隔.我想剥离课程和空间去:

USDZAR
R157
SPX
Run Code Online (Sandbox Code Playgroud)

在R中这样做最有效的方法是什么?它是正则表达式还是我必须像使用mid和find命令在MS Excel中那样做?例如在Excel中我会说:

=MID(@REF, 1, FIND(" ", @REF, 1)-1)
Run Code Online (Sandbox Code Playgroud)

这意味着返回从字符1开始的子字符串,并以第一个空格的字符编号结束(少于1以擦除实际空间).

我是否需要在R中做类似的事情(在这种情况下,等价物是什么),或者正则表达式可以帮助吗?谢谢.

G. *_*eck 23

1)尝试使用正则表达式匹配空格后跟任何字符序列并将其sub替换为具有零字符的字符串:

x <- c("USDZAR Curncy", "R157 Govt", "SPX Index")
sub(" .*", "", x)
## [1] "USDZAR" "R157"   "SPX"  
Run Code Online (Sandbox Code Playgroud)

2)如果您希望数据框中单独列中的两个单词,则可以选择另一种方法.这里as.is = TRUE使列成为字符而不是因素.

read.table(text = x, as.is = TRUE)
##       V1     V2
## 1 USDZAR Curncy
## 2   R157   Govt
## 3    SPX  Index
Run Code Online (Sandbox Code Playgroud)