设置的区别:找到不同的成员中的Tableau桌面两组(Set difference: find di

2019-09-29 06:47发布

如何实现的Tableau桌面下面的一组差/组的区分任务是什么?

我有谁要么被调整或不制品( adjusted = 1adjusted= 0 )。 需要注意的是每个产品可能会被多次列出(作为真正的数据集是每个产品堆叠时间序列的AA矩阵)。

我想找出许多产品如何至少有一个调整,多少也没有。

这是怎么会做在R:

实施例的数据:

dat <- data.frame(
  product = c("4005808588763", "4005808250004", "4005808157822",
    "4005800031052", "4005808855735", "4005808651818", "4005808322053",
    "4005808236879", "4005800091629", "4005808361434", "42277248",
    "4005808224074", "9005800249858", "42277835", "4005808627356",
    "8005800010985", "4005808323197", "4005808186129", "4005800059254",
    "4005808818587", "4005900175410", "72140018627", "4005800059292",
    "72140008499", "4005808125968", "42269847", "4005808675173",
    "72140016371", "4005808765157", "4005900123763", "4005808816019",
    "4005800062575", "4005808293872", "4005900143952", "8850029006536",
    "4005800136986", "42231493", "4005808715688", "4005800053085",
    "4005800059629", "4005808847419", "4005800031656", "4005900273994",
    "4005900261038", "6009661219022", "42240181", "8850029016030",
    "4005900146274", "42176152", "4005808158096"), 
  adjusted = c(1L, 1L, 0L, 1L, 0L, 1L, 1L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L,
      1L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 1L,
      0L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L,
      1L)
  )
#          product adjusted
# 1  4005808588763        1
# 2  4005808250004        1
# 3  4005808157822        0
# 4  4005800031052        1
# 5  4005808855735        0
# 6  4005808651818        1
# 7  4005808322053        1
# 8  4005808236879        0
# 9  4005800091629        1
# 10 4005808361434        0
# 11      42277248        1
# 12 4005808224074        1
# 13 9005800249858        0
# 14      42277835        0
# 15 4005808627356        0
# 16 8005800010985        0
# 17 4005808323197        0
# 18 4005808186129        1
# 19 4005800059254        0
# 20 4005808818587        0
# 21 4005900175410        1
# 22   72140018627        1
# 23 4005800059292        1
# 24   72140008499        1
# 25 4005808125968        1
# 26      42269847        0
# 27 4005808675173        1
# 28   72140016371        1
# 29 4005808765157        1
# 30 4005900123763        0
# 31 4005808816019        0
# 32 4005800062575        0
# 33 4005808293872        1
# 34 4005900143952        0
# 35 8850029006536        1
# 36 4005800136986        1
# 37      42231493        1
# 38 4005808715688        1
# 39 4005800053085        0
# 40 4005800059629        0
# 41 4005808847419        0
# 42 4005800031656        1
# 43 4005900273994        1
# 44 4005900261038        1
# 45 6009661219022        1
# 46      42240181        1
# 47 8850029016030        1
# 48 4005900146274        1
# 49      42176152        0
# 50 4005808158096        1

分成两个数据帧:

g1 <- filter(dat, adjusted == 0)
g2 <- filter(dat, adjusted == 1)

找到独特的产品ID:

(id_1 <- unique(g2$product))
# [1] "4005808588763" "4005808250004" "4005800031052" "4005808651818" "4005808322053"
# [6] "4005800091629" "42277248"      "4005808224074" "4005808186129" "4005900175410"
# [11] "72140018627"   "4005800059292" "72140008499"   "4005808125968" "4005808675173"
# [16] "72140016371"   "4005808765157" "4005808293872" "8850029006536" "4005800136986"
# [21] "42231493"      "4005808715688" "4005800031656" "4005900273994" "4005900261038"
# [26] "6009661219022" "42240181"      "8850029016030" "4005900146274" "4005808158096"

(id_2 <- setdiff(unique(g1$product), id_1))
# [1] "4005808157822" "4005808855735" "4005808236879" "4005808361434" "9005800249858"
# [6] "42277835"      "4005808627356" "8005800010985" "4005808323197" "4005800059254"
# [11] "4005808818587" "42269847"      "4005900123763" "4005808816019" "4005800062575"
# [16] "4005900143952" "4005800053085" "4005800059629" "4005808847419" "42176152"

由于我很新的画面,我真的不知道如何去实现这样的查询。

Answer 1:

有在的Tableau至少两项功能,对于这样的问题非常有用:计算集和LOD计算。 还有其他的可能性了。

下面是使用基于PRODUCT_ID字段以指示哪些产品有至少一个价格调整一个(计算)集的方法。 选择PRODUCT_ID场,点击右键,创建一套。 选择常规选项卡上的“使用全部”选项,然后切换到条件选项卡。 然后选择“通过场”,现场“调整”,条件设置为SUM()> 0。在SQL方面,新集包含那些Product_IDs HAVING SUM(调整)> 0。

然后,你可以把你一套新行货架上显示IN / OUT,然后将COUNT列货架上DISTINCT(产品),以显示有多少产品是在一套多少产品都没有。



文章来源: Set difference: find distinct members for two groups in Tableau Desktop