【发布时间】:2018-06-20 19:57:30
【问题描述】:
(编辑:数据标签并不总是三的倍数) 考虑如下数据:
some_tags <- c("cat|hat",
"cat|hat|hog",
"cat|bat",
"bat|hat|dog",
"rat")
set.seed(2)
data.frame(clusters=sample.int(3, 5,replace = T),
tag=some_tags)
生成的数据框是
clusters tag
1 1 cat|hat
2 3 cat|hat|hog
3 2 cat|bat
4 1 bat|hat|dog
5 3 rat
我想对集群进行分组,以给出“标签”(由竖线分隔)在该集群中出现的次数比例。例如以下将是期望的结果
clusters tag prop
1 hat 1.0
1 dog 0.5
1 cat 0.5
1 bat 0.5
2 cat 1.0
2 bat 1.0
... (cluster 3 results not shown)
我正在考虑使用 strsplit 和 table 之类的东西,但不知道是否有更简单的方法来使用 dplyr。
【问题讨论】:
-
您能解释一下为什么您会得到这些数字吗?例如。集群 1 有一次猫,两次帽子,两次狗,一次蝙蝠。所以我预计猫和蝙蝠为 0.167,而帽子和狗为 0.333。相反,您有 1.0 和 0.5。你只想乘以 3 吗?
-
集群 1 中的两次观察。cat 一次在集群 1 中的频率为 1/2。 dog 有两次,所以 2/2 =1.0
-
我现在没有得到相同的示例 data.frame。
-
@ngm 刚刚修复