R中的字符串

时间:2015-01-09 05:54:59

标签: regex r gsub

如何在R中的#之前提取字符?我的字符串是yet#rt,我只想提取yetsubstring很好,但#之前的内容有不同的长度,所以我不能在这里使用它。

6 个答案:

答案 0 :(得分:4)

您可以使用gsub()去除#符号及其后的所有内容

x <- c("apple#pie", "banana#split")
gsub("#.*$","", x)
# [1] "apple"  "banana"

答案 1 :(得分:3)

在R中,"#"通常被视为注释字符,因此将数据导入R的若干函数(如scanread.table)具有comment.char告诉R在遇到该字符后忽略所有内容的参数。

以下是scan的方法:

my.strings <- c("yet#rt", "blah#rt", "meh#rt")
scan(what = "character", text = my.strings, comment.char = "#")
# Read 3 items
# [1] "yet"  "blah" "meh"

答案 2 :(得分:0)

您可以使用strsplit。怎么样?

strsplit("Good#Bad","#")[[1]][1]
[1] "Good"

答案 3 :(得分:0)

^[^#]*(?=#)

你可以试试这个简单的正则表达式来实现它。

答案 4 :(得分:0)

又一种可能性

library(stringr)
my.string <- "yet#rt"
str_sub(string = my.string, end = str_locate(my.string,"#")[1]-1)

答案 5 :(得分:0)

我维护的 qdap 包中的beg2char(起始字符)功能就是针对这类事情做的:

library(qdap)

x <- c("apple#pie", "banana#split")
beg2char(x, "#")
## [1] "apple"  "banana"

对于其他角色(您询问了一段时间):

x <- c("apple.pie", "banana.split.")
beg2char(x, ".")
## [1] "apple"  "banana