首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算列中句号或星号的数目。

计算列中句号或星号的数目。
EN

Stack Overflow用户
提问于 2015-12-15 19:52:41
回答 1查看 831关注 0票数 2

基本上,我有一个名为XX$pitch_by_pitch的列,它的值为(F、S、B、X、.、*)等,我正在计算列中有多少字符不是句号或星号。

示例:

代码语言:javascript
复制
pitch=data.frame(c(".CX",".BSCBS",".BSBX",".D",".FFB*B."))
names(pitch)[1]="pitch_by_pitch"
pitch$row=row.names(pitch)
pitch$pitch_by_pitch=as.character(pitch$pitch_by_pitch)
pitch$num=nchar(pitch$pitch_by_pitch)

显然,最后一行计数所有字符,但我想删除句号和星号。

我尝试过这样的方法:

代码语言:javascript
复制
count.slashes <- function(string)sum(unlist(strsplit(string, NULL)) == "*") 
within(x, Col2 <- vapply(Col1, count.slashes, 1)) 
pbp$pitchstar=which(unlist(strsplit(pbp$pitch_by_pitch,NULL)) == '*') 
pbp$pitchstar=str_count(pbp$pitch_by_pitch, "*")
pbp$star=length(which(pbp$pitch_by_pitch == '*'))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-15 19:59:59

试试pitch$num=nchar(gsub("\\*|\\.", "", pitch$pitch_by_pitch))

gsub("\\*|\\.", "", pitch$pitch_by_pitch)删除pitch_by_pitch列中的所有*.。之后,使用nchar计数字符就足够了:

代码语言:javascript
复制
gsub("\\*|\\.", "", pitch$pitch_by_pitch)
# [1] "CX"    "BSCBS" "BSBX"  "D"     "FFBB"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34298179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档