我想提取字符串的第一个(或最后一个)n 个字符。这将等效于 ExcelLEFT()
和RIGHT()
. 一个小例子:
# create a string
a <- paste('left', 'right', sep = '')
a
# [1] "leftright"
我想产生b
一个等于前 4 个字母的字符串a
:
b
# [1] "left"
我该怎么办?
看?substr
R> substr(a, 1, 4)
[1] "left"
该stringr
包提供的str_sub
功能比 更容易使用substr
,特别是如果您想提取字符串的正确部分:
R> str_sub("leftright",1,4)
[1] "left"
R> str_sub("leftright",-5,-1)
[1] "right"
您可以从 Rbase 包开始轻松获取 Right() 和 Left() 函数:
正确的功能
right = function (string, char) {
substr(string,nchar(string)-(char-1),nchar(string))
}
左函数
left = function (string,char) {
substr(string,1,char)
}
您可以将这两个自定义函数与 Excel 中的 left() 和 right() 完全相同。希望你会发现它有用
使其简单并使用 R 基本功能:
# To get the LEFT part:
> substr(a, 1, 4)
[1] "left"
>
# To get the MIDDLE part:
> substr(a, 3, 7)
[1] "ftrig"
>
# To get the RIGHT part:
> substr(a, 5, 10)
[1] "right"
该substr()
功能告诉你在哪里开始和停止substr(x, start, stop)
如果您来自 Microsoft Excel,则以下函数将类似于LEFT()
、RIGHT()
和MID()
函数。
# This counts from the left and then extract n characters
str_left <- function(string, n) {
substr(string, 1, n)
}
# This counts from the right and then extract n characters
str_right <- function(string, n) {
substr(string, nchar(string) - (n - 1), nchar(string))
}
# This extract characters from the middle
str_mid <- function(string, from = 2, to = 5){
substr(string, from, to)
}
例子:
x <- "some text in a string"
str_left(x, 4)
[1] "some"
str_right(x, 6)
[1] "string"
str_mid(x, 6, 9)
[1] "text"