R中字符串位置的频率

时间:2016-12-05 23:50:40

标签: r

我希望计算以下数据集中每个因子的位置:

df <-data.frame(fact=c("a,b", "c,b"))

所以,我的理想输出是这样的:

  Factor   position1      Position2

  a          1            0
  b          0            2
  c          1            0

例如b在第二个位置发生了两次。

我所尝试的内容非常乏味,我将字符串分隔为列,然后逐个测量每个字符串的频率:

library(splitstackshape)

df <-cSplit(df,"fact", ",")

table(df$fact_2)

我想知道是否有任何提示让我的工作更轻松?

2 个答案:

答案 0 :(得分:3)

由于cSplit给出了data.table,因此您可以融合并投射以更简单的方式获得结果:

dfspl <-cSplit(df,"fact", ",")

dcast(melt(dfspl, measure.vars=names(dfspl)), value ~ variable, fun.agg=length)

#   value fact_1 fact_2
#1:     a      1      0
#2:     b      0      2
#3:     c      1      0

答案 1 :(得分:1)

以下是NSURLSession

的另一个选项
dplyr/tidyr