如何在R中的字符串中找到单个字母的确切数字?

时间:2014-04-17 18:54:36

标签: string r search character

我有一串字符。

c = c("a", "about", "base", "base", "h2o", "h", "yes", "a", "c", "h", "d")

我需要找出特定单个字母的次数,例如" a"," c"," h"," d",在字符串中重复。我试过了

grep("a", c, fixed=TRUE, useBytes=TRUE)

但它会给出所有位置" a"出现,包括" about"和" base"。我也试过

match("a", c)

可悲的是,它只给出了第一场比赛的位置并忽略了以下比赛。

如何获得" a"的所有位置,应该是1和8?

2 个答案:

答案 0 :(得分:2)

听起来你只是在寻找tablewhich

String <- c("a", "about", "base", "base", "h2o", "h", "yes", "a", "c", "h", "d")
table(String)
# String
#     a about  base     c     d     h   h2o   yes 
#     2     1     2     1     1     2     1     1 

which(String == "a")
# [1] 1 8

nchar(String)
#  [1] 1 5 4 4 3 1 3 1 1 1 1

table(String[nchar(String) == 1])
# 
# a c d h 
# 2 1 1 2 

答案 1 :(得分:0)

您可以在grep中改变正则表达式

v = c("a", "about", "base", "base", "h2o", "h", "yes", "a", "c", "h", "d")
grep("^a$", v)
#[1] 1 8
length(grep("^a$", v))
#[1] 2