我想提取字符串的前n个字符。这将等同于Excel的LEFT()
和RIGHT()
。一个小例子:
# create a string
a <- paste('left', 'right', sep = '')
a
# [1] "leftright"
我想产生b
一个字符串,该字符串等于的前4个字母a
:
b
# [1] "left"
我该怎么办?
Answers:
该stringr
软件包提供了该str_sub
功能,该功能比的使用要容易一些substr
,尤其是当您要提取字符串的正确部分时:
R> str_sub("leftright",1,4)
[1] "left"
R> str_sub("leftright",-5,-1)
[1] "right"
R
:)
stringr
将节省您几乎一样的烦恼lubridate
。
您可以从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()完全相同。希望你会发现它有用
如果您是从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"
stringr
解决方案。