如何将每一行作为参数从 Tableau 计算字段传递给 R 脚本

How to pass each row as an argument to R script from Tableau calculated field

我正在尝试对我拥有的 table 进行情绪分析。

我希望将每一行字符串数据传递给 R 脚本,但问题是 Tableau 仅接受聚合数据作为参数:

SCRIPT_STR(
  'output <- .arg1; output', [comments]
)

这给我一条错误消息:

# All fields must be aggregate or constant.

尝试 MIN([comments]) 并确保您的可视化项具有适当的维度,以便对数据进行足够精细的划分,以便为每个维度组合获得一条评论。

来自 Tableau and R Integration 文档:

Given that the SCRIPT_*() functions work as table calculations, they require aggregate measures or Tableau parameters to work properly. Aggregate measures include MIN(), MAX(), ATTR(), SUM(), MEDIAN(), and any table calculations or R measures. If you want to use a specific non-aggregated dimension, it needs to be wrapped in an aggregate function.

在你的情况下你可以这样做:

SCRIPT_STR(
  'output <- .arg1; output', ATTR([comments])
)

ATTR() 是一个特殊的 Tableau 聚合,它执行以下操作:

IF MIN([Dimension]) = MAX([Dimension]) THEN 
[Dimension] ELSE * (a special version of Null) END

当您不确定数据的详细程度和发送的内容时,它在构建可视化时非常有用

注意:在大型数据集中,它可能比 MIN()MAX() 慢得多,所以一旦您确信您的结果是准确的,那么您可以切换到其他功能之一以提高性能。