R是否具有像python一样的开头或结尾的功能?

use*_*990 62 python string r startswith ends-with

正在寻找名称以某些子字符串开头的预测变量,找不到任何类似的函数.

ijo*_*eph 85

正如在3.3.0中添加的base那样,startsWith(和endsWith)就是这样.

> startsWith("what", "wha")
[1] TRUE
> startsWith("what", "ha")
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

https://stat.ethz.ch/R-manual/R-devel/library/base/html/startsWith.html

  • 谢谢,ijoseph,请在接受的答案下查看alexis_laz的评论. (2认同)
  • 它是在 3.3.0 中添加的:“新的字符串实用程序 `startsWith(x, prefix)` 和 `endsWith(x, suffix)`。” 来自 R 变更日志 https://cran.r-project.org/doc/manuals/r-devel/NEWS.html (2认同)

mat*_*fee 24

不像那样内置.

选项包括greplsubstr.

x <- 'ABCDE'
grepl('^AB', x) # starts with AB?
grepl('DE$', x) # ends with DE?
substr(x, 1, 2) == 'AB'
substr('ABCDE', nchar(x)-1, nchar(x)) == 'DE'
Run Code Online (Sandbox Code Playgroud)

  • (只是一个注释)从R 3.3.0开始,函数`startsWith`和`endsWith`存在. (12认同)

G. *_*eck 11

dplyr包的select声明支持starts_withends_with.例如,这将选择以#开头的虹膜数据帧的列Petal

library(dplyr)
select(iris, starts_with("Petal"))
Run Code Online (Sandbox Code Playgroud)

select也支持其他子命令.试试?select.


小智 6

我能想到的最简单的方法是使用%like%运算符:

library(data.table)

"foo" %like% "^f" 
Run Code Online (Sandbox Code Playgroud)

评估为TRUE- 从f开始

"foo" %like% "o$" 
Run Code Online (Sandbox Code Playgroud)

评估为TRUE- 结束o

"bar" %like% "a"
Run Code Online (Sandbox Code Playgroud)

评估为TRUE- 包含a