计数模式,基于R数据帧中的通配符

时间:2016-05-05 11:22:00

标签: r

我有一个像这样的数据框

Type    cat1
A   NA
B   NA
C   NA
D   Huvec,2_Weak_Promoter;NHLF,2_Weak_Promoter;NHEK,3_Poised_Promoter
E   Huvec,2_Weak_Promoter;NHLF,2_Weak_Promoter
F   HepG2,2_Weak_Promoter
G   SK.MUS62,6_TssD2

我想要计算以下模式在column_cat1的每一行中重复的次数

  

字符串1,字符串;

,预期输出为

Type    Count
A   NA
B   NA
C   NA
D   3
E   2
F   1
G   1

我不知道如何在此使用正则表达式或str_split ..有人可以帮我解决..

由于 穆尔

2 个答案:

答案 0 :(得分:3)

您可以使用stringr包和str_count

library(stringr)
str_count(df$cat1, ',')
#[1] NA NA NA  3  2  1  1

答案 1 :(得分:0)

@sotos答案更清晰,但这是一个基本的R解决方案:

cat1 <- c(NA, NA, NA, "Huvec,2_Weak_Promoter;NHLF,2_Weak_Promoter;NHEK,3_Poised_Promoter",
          "Huvec,2_Weak_Promoter;NHLF,2_Weak_Promoter", "HepG2,2_Weak_Promoter", 
          "SK.MUS62,6_TssD2")

myCount <- sapply(strsplit(cat1, split=";"), FUN=length)

这取决于每个条目用分号分隔的模式,&#34 ;;&#34;。