【发布时间】:2014-05-21 13:35:16
【问题描述】:
我有一个数据框(df)如下:
V V1 V2 V3
1 A B 32
1 A C 33
1 A E 43
1 A F 22
1 A T 53
1 A N 54
1 C T 44
1 C G 11
1 C N 31
1 C D 53
1 C U 75
1 A T 53
1 A N 54
2 C T 42
2 C G 14
2 C N 35
2 C D 23
2 C U 56
我想要做什么来获得 (V,V1) 的每个组合的异常值,这很容易用我拥有的代码实现。
d <- as.data.table(df)
# Add a column to keep track of row numbers
d[, c('row'):= list(seq_len(nrow(d)))]
# For each group (combination of V and V1), perform the outlier test
outliers <- d[, chisq.out.test(V3), list(V, V1)]
主要问题是,对于 (V,V1) 的每个组合,此函数将只返回一个具有 p 值的异常值。我需要的基本上是所有异常值以及它们作为每个 (V,V1) 的异常值的 p 值,或者换句话说,来自 V2 的所有候选人以及它们作为异常值的 p 值 (@987654326 @)。
有什么想法可以改变我的代码来做到这一点吗?
【问题讨论】: