我对数组值的子集有问题。
raw.table <- array(data = c(1:12,13:24,rep(1:6, each=2)),
dim=c(3,4,3),
dimnames=list(LETTERS[1:3],1:4,c("target","ctrl","samples")))
我的数组的前两个维度代表我想要进行统计的一些值,而更高的维度包含我想用来访问特定子集的不同属性。在这种情况下,我只有样本编号,而总是有两个值分配给相同的样本编号(测量重复)。
, , target
1 2 3 4
A 1 4 7 10
B 2 5 8 11
C 3 6 9 12
, , ctrl
1 2 3 4
A 13 16 19 22
B 14 17 20 23
C 15 18 21 24
, , samples
1 2 3 4
A 1 2 4 5
B 1 3 4 6
C 2 3 5 6
如何访问维度1(=目标)中具有相同样本编号的维度3(=样本)中的值?我尝试了使用unique(),duplicatelicated()和match()的不同方法,但没有得出结果。我无法解决数组的索引问题 - .-
干杯, zuup
答案 0 :(得分:0)
使用逻辑测试(跨维度)形成逻辑索引:
> raw.table[,,1] == raw.table[,,3]
1 2 3 4
A TRUE FALSE FALSE FALSE
B FALSE FALSE FALSE FALSE
C FALSE FALSE FALSE FALSE
并使用它从第一维中选择项目(因为它们的长度相等,没有回收):
> raw.table[, , 1 ][ raw.table[,,1] == raw.table[,,3] ]
[1] 1
在R
中完全可以接受对Extract-operator的链接调用