【问题标题】:Compute mean of control计算控制的平均值
【发布时间】:2017-05-16 22:53:13
【问题描述】:

我正在将分析从 R 迁移到 Spotfire,而 dplyr 中微不足道的东西在 Spotfire 中似乎很难。我有一张桌子,上面有几个实验组,每个实验组都有治疗和对照。我想计算每个实验组的控制平均值。

这是一个示例:

+-------+------+-------+
| group | trmt | value |
+-------+------+-------+
|     a | cont |    32 |
|     a | cont |    28 |
|     a | t1   |    65 |
|     a | t1   |    57 |
|     a | t2   |    23 |
|     a | t2   |    19 |
|     b | cont |   132 |
|     b | cont |   128 |
|     b | t1   |   165 |
|     b | t1   |   157 |
|     b | t2   |   123 |
|     b | t2   |   119 |
+-------+------+-------+

以及所需的输出:

+-------+------+-------+-------------+
| group | trmt | value | meanControl |
+-------+------+-------+-------------+
| a     | cont |    32 |          30 |
| a     | cont |    28 |          30 |
| a     | t1   |    65 |          30 |
| a     | t1   |    57 |          30 |
| a     | t2   |    23 |          30 |
| a     | t2   |    19 |          30 |
| b     | cont |   132 |         130 |
| b     | cont |   128 |         130 |
| b     | t1   |   165 |         130 |
| b     | t1   |   157 |         130 |
| b     | t2   |   123 |         130 |
| b     | t2   |   119 |         130 |
+-------+------+-------+-------------+

在 R 中,逻辑很简单:

library(dplyr)
df <- read.csv('xx.csv', as.is=T)

controls <- df           %>%
  filter(trmt == "cont") %>%
  group_by(group)        %>%
  summarize(meanControl=mean(value))

result <- df             %>%
  inner_join(controls, by="group")

在 Spotfire 中执行此操作的好方法是什么?显然我可以用 TERR 做到这一点,但我想要纯原生 Spotfire。

【问题讨论】:

  • 这对你有用吗

标签: spotfire


【解决方案1】:

您可以使用此公式插入计算列

Avg(if([trmt]="cont",[value])) over ([group])

既然您了解R,我假设您会很容易理解这个公式,或者在阅读了OVER 函数后能够理解它,但如果需要解释,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 2017-02-06
    • 2012-06-19
    • 1970-01-01
    相关资源
    最近更新 更多