r - 计算列中句点或星号的数量

标签 r count character

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

示例:

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)

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

我尝试过以下方法:

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 == '*'))

最佳答案

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

gsub("\\*|\\.", "",itch$pitch_by_pitch) 删除所有 *. pitch_by_pitch 列。之后使用 nchar 计算字符应该就足够了:

gsub("\\*|\\.", "", pitch$pitch_by_pitch)
# [1] "CX"    "BSCBS" "BSBX"  "D"     "FFBB"

关于r - 计算列中句点或星号的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34298179/

相关文章:

r - 聚合方法以不同方式处理缺失值 (NA)

r - 仅折叠 R 中数据框的第一列,其余列数据完好无损

mysql - 获取 'COUNT'/'GROUP BY' MySQL 查询的空结果

sql - 来自INNER JOIN的SQL计数

c++ - 将单个字符转换为字符串?

r - 如何在 gganimate 动画中左对齐绘图标签?

r - 使用 $ vs. [] 符号创建 xts 对象的滞后变量

php - 如何对共享相同首字母的一组行进行计数和求和

java - 使用 Scanner 提示用户输入

python - 计算文件中的大写字母、小写字母、数字和空格