我在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)