【发布时间】:2026-02-03 18:45:02
【问题描述】:
我对识别多列文本字符串的共现模式很感兴趣。我有一个固定呼叫中心数据的研究数据集(1 个呼叫 = 1 行)。我已经手动向数据集中添加了 4 列来添加标签,我们将列命名为 Theme1、Theme2、Theme3、Theme4。
大约有 50 个标签是文本字符串,非序数,并且使用一致的拼写(例如,Red、Blue、Green、Orange、Violet...[44 种随机颜色]...Aquamarine)
标签在列之间是互斥的。有些调用只使用了 1 个或 2 个标签。我提到它们是非序数的,所以我的意思是标签可能出现在 Theme1 的一行中,然后出现在 Theme2 的另一行中。这是一个例子:
| Theme1 | Theme2 | Theme3 | Theme4 |
|---|---|---|---|
| Red | Blue | Green | Violet |
| Blue | Green | ||
| Green | Red | Blue | Violet |
| Violet | Green | ||
| Blue | |||
| Blue | Red |
Expected Output
Red AND Blue both in a row = 400
Blue AND Green both in a row = 320
Violet AND Red both in a row = 115
我想做的是找出行中的任何常见配对。所以我想知道有多少行有一个红色和一个蓝色——或者更恰当地说([红色然后蓝色]或[蓝色然后红色])。
我检查了“堆栈”,但没有发现任何人试图识别相关联的互斥、非序数文本字符串中的模式。我想到使用 =Concatenate 并简单地进行手动审查。实际上,这就是我可能最终会做的事情......但这需要很长时间,而且我知道它有可能错过一些事情。
我想到的另一件事是转置列,以便每一列成为跨越 50 列红色、蓝色、绿色、橙色、紫罗兰色...[44 种随机颜色]...海蓝宝石的 Y/N 标志。我想到的另一件事是以某种方式编写一个函数,以确保前 25 个标签仅出现在 Theme1 列中,而其他 25 个标签仅出现在 Theme2 列中……但即使在我写这篇文章时,我也不确定这是否可行...
你会怎么做? 谢谢!
【问题讨论】:
-
从上面的示例数据中您期望得到什么输出?您能否添加另一个标题为
Expected Output的列,然后手动输入结果并解释结果是如何产生的。 -
您是在寻找(例如)红色紧跟在蓝色之后(即在相邻的列中),还是主题 1 中的红色和主题 3 中的蓝色? BTW 有 1000 多对 50 种颜色。
-
@TomSharpe 后者:只是一些可以检测红色和蓝色是否在同一行中的公式。更广泛地说,一个计算 4 列中 2 个文本字符串的所有行组合的公式。