首页 > 解决方案 > 将逗号分隔的字符计数为 R 中的因子

问题描述

我有一个数据集,其中有一个名为 name_trackers 的变量,该变量中有多达 30 个不同的字符串,它们的名称使用逗号分隔。总共有 405 个不同的跟踪器,它们的出现已作为名称存储在上述变量中​​。我想确定跟踪器的频率。有没有人有办法让我做到这一点?

以逗号分隔的字符串形式的变量的文本格式:

name_trackers         <chr> "Flurry,AppsFlyer,Twitter MoPub,Google DoubleClick,AppLovin,Google Analyt~

我的输出可能是一个新的数据框,有 405 行,第一列由 trackers_names 命名,第二列应该是名称在 4662 行的“旧”数据框中出现的次数

标签: rcount

解决方案


我将通过使用为每个跟踪器的存在创建虚拟变量来解决此问题

dummy.tracker = grepl("tracker", var)

如果您想以编程方式为每个跟踪器执行此操作,您可以尝试这样的事情(可重现的示例)

df <- data.frame(
  name_trackers = c("a,b", "a,b,c", "c"),
  stringsAsFactors = F
)

trackers <- unique(unlist(strsplit(df$name_trackers, ",")))

for(tracker in trackers) {
  #To create new dummy variables for each tracker
  df[[tracker]] = grepl(tracker, df$name_trackers)

  #If you're just interested in frequencies
  print(paste0(tracker, ": ", mean(grepl(tracker, df$name_trackers))))
}

推荐阅读