【发布时间】:2019-12-09 22:46:37
【问题描述】:
我正在寻找一个 r 函数来基于两个变量在我的数据集中创建集群(希望“集群”是我想做的正确名称)。变量_1 或变量_2 具有相同值的每两个观察值应该在同一个集群中。在下面的简短示例中,我根据 variable_1 和 variable_2 聚合数据帧 df。
df <- data.frame(variable_1=c("a","a","b","b","c","c","d","d","e","e"),variable_2=c("g1","g2","g1","g3","g2","g4","g4","g6","g7","g8"),value=rnorm(10))
df$clusters <- some_function_to_create_clusters(df[,c("variable_1","variable_2")])
结果应该是这样的:
df$clusters <- c("clu1","clu1","clu1","clu1","clu1","clu1","clu1","clu1","clu2","clu2")
df
请注意,第一个集群包含 variable_1 等于“a”、“b”、“c”或“d”的所有人:“a”和“b”合并在一起,因为它们共享“g1”(第 1 行和第 1 行) 3); “a”和“c”被合并,因为它们共享“g2”(第 2 行和第 5 行);和 "c" 和 "d" 被合并,因为它们共享 "g4"(第 6 行和第 7 行)。 最后,在最后一个集群中,只有 variable_1=="e" 的观察值,因为它们不与任何人共享 variable_2。
为了澄清我打算做什么,我会更好地解释我的问题集。我正在将县与附近的旅游景点配对。不同的县周围有不同的旅游景点(TA),同一个县周围有很多旅游景点。但是,这个县和 TA 的“旅游集群”在该国很少分布。请注意,由于县与旅游景点连接的“连锁”效应,一些遥远的县可能在同一个集群内。所以我想根据县和旅游景点的 id 找到那些“集群”。
这看起来很简单,但我不知道如何实现。
非常感谢
【问题讨论】:
标签: r aggregate cluster-computing