我想提取字符串的第一个(或最后一个) n 字符。这相当于Excel的LEFT()
和RIGHT()
。一个小例子:
# create a string
a <- paste('left', 'right', sep = '')
a
# [1] "leftright"
我想生成b
,一个等于a
的前4个字母的字符串:
b
# [1] "left"
我该怎么办?
答案 0 :(得分:65)
请参阅?substr
R> substr(a, 1, 4)
[1] "left"
答案 1 :(得分:38)
stringr
包提供了str_sub
函数,它比substr
更容易使用,特别是如果你想提取字符串的正确部分:
R> str_sub("leftright",1,4)
[1] "left"
R> str_sub("leftright",-5,-1)
[1] "right"
答案 2 :(得分:18)
您可以从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()。 希望你会发现它很有用
答案 3 :(得分:2)
如果您来自Microsoft Excel,则以下功能将类似于ORDER BY
,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)
}
答案 4 :(得分:1)
简化并使用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)