亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何計算字符串列每行中給定字符的出現次數?

如何計算字符串列每行中給定字符的出現次數?

胡子哥哥 2019-09-02 11:14:07
我有一個data.frame,其中某些變量包含文本字符串。我希望計算每個字符串中給定字符的出現次數。例:q.data<-data.frame(number=1:3, string=c("greatgreat", "magic", "not"))我希望為q.data創建一個新列,其中包含字符串中“a”的出現次數(即c(2,1,0))。我管理的唯一令人費解的方法是:string.counter<-function(strings, pattern){    counts<-NULL  for(i in 1:length(strings)){    counts[i]<-length(attr(gregexpr(pattern,strings[i])[[1]], "match.length")[attr(gregexpr(pattern,strings[i])[[1]], "match.length")>0])  }return(counts)}string.counter(strings=q.data$string, pattern="a") number     string number.of.a1      1 greatgreat           22      2      magic           13      3        not           0
查看完整描述

3 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

stringr包提供了str_count似乎做你感興趣的功能


# Load your example data

q.data<-data.frame(number=1:3, string=c("greatgreat", "magic", "not"), stringsAsFactors = F)

library(stringr)


# Count the number of 'a's in each element of string

q.data$number.of.a <- str_count(q.data$string, "a")

q.data

#  number     string number.of.a

#1      1 greatgreat           2

#2      2      magic           1

#3      3        not           0


查看完整回答
反對 回復 2019-09-02
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

如果你不想離開基地R,這里有一個相當簡潔和富有表現力的可能性:


x <- q.data$string

lengths(regmatches(x, gregexpr("a", x)))

# [1] 2 1 0


查看完整回答
反對 回復 2019-09-02
  • 3 回答
  • 0 關注
  • 1282 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號