【发布时间】:2014-10-21 16:44:56
【问题描述】:
假设我有一个数组,其中 x 代表重复测量 (1-4),y 代表治疗 (A,B),z 代表时间点 (1-3)
x <- c(2,2,4,15,17,13,3,10,3,4,11,14,1,3,19,6,13,6,12,18,9,13,12,16)
dim(x) <- c(4,2,3)
, , 1
[,1] [,2]
[1,] 2 17
[2,] 2 13
[3,] 4 3
[4,] 15 10
, , 2
[,1] [,2]
[1,] 3 1
[2,] 4 3
[3,] 11 19
[4,] 14 6
, , 3
[,1] [,2]
[1,] 13 9
[2,] 6 13
[3,] 12 12
[4,] 18 16
我想创建一个新数组,该数组的每个重复次数大于该处理和时间点组合的所有其他重复次数:
, , 1
[,1] [,2]
[1,] 2 0 #both 4 and 15 are bigger then 2, so for 1,1,1 the result is 2
[2,] 2 1
[3,] 1 3 #15 is the only replicate bigger than 4 so result for 3,1,1 is 1
[4,] 0 2
, , 2
[,1] [,2]
[1,] 3 3
[2,] 2 2
[3,] 1 0
[4,] 0 1
, , 3
[,1] [,2]
[1,] 1 3
[2,] 3 1
[3,] 2 2
[4,] 0 0
【问题讨论】:
-
我们可以得到使用的代码来生成原始数组吗?
-
你没有倒数(或倒退的问题)吗?例如对于 c(2,2,4,15) 2 大于 0 的其他复制。数组向量 [1,1,1] == c(0,0,2,3) 不应该是 c(2,2,1,0) 吗?还是我看错了?
-
为了简单起见,我只是组成了这个数组。我要应用它的数据有 2 个因子,每个因子有 50 个水平和 10,000 个重复 [1:10000, 1:50, 1:50]。对于因子水平的每个组合,我分别进行第一个复制,看看有多少其他复制更大,然后是第二个复制,看看有多少其他复制更大,依此类推,直到我有一个数组,其中的数量为对于每个原始仿行而言更大的其他仿行(分别针对因子水平的每种组合)