使用变量和IN进行筛选



在R中,我可以写

neighbours<-c("Merton",
"Southwark","Sutton","Wandsworth",
"Bromley")

然后像一样过滤数据帧

df %>% filter(neighbours %in% boroughs_of_london)

如果你遵循这样的方法,它可能会变得更加复杂:

带有str_detect R 的多个字符串

我的问题是,由于tidyverse dplyr非常像SQL,也像DAX(对吧?(,

我可以通过DAX中的矢量/变量进行过滤吗?如何进行过滤

编辑:在DAX中,您可能会编写

FILTER (
LONDON,
LONDON[boroughs_of_london]
IN { "Merton", "Southwark", "Sutton", "Wandsworth", "Bromley" }
)

这是正确的吗?

FILTER (
LONDON,
LONDON[boroughs_of_london] IN { neighbours }
)

在DAX中,变量当然可以是标量、向量或表。

以下内容有效:

LondonNeighbours =
VAR neighbours = { "Merton", "Southwark", "Sutton", "Wandsworth", "Bromley" }
RETURN
FILTER ( LONDON, LONDON[boroughs_of_london] IN neighbours )

结果是一个计算的表,该表是LONDON表中向下过滤到仅那些指定行政区的行。

无论neighbors变量是硬编码的(在上面的示例中(、基于切片器和/或过滤器上下文动态确定的,还是对其他表的固定引用,FILTER内部的语法都将保持不变。

最新更新