我有一串字符。
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?
答案 0 :(得分:2)
听起来你只是在寻找table
和which
:
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