【发布时间】:2014-11-01 00:12:13
【问题描述】:
我正在尝试解决以下问题:
考虑 5 个简单序列:0:100、100:0、rep(0,101)、rep(50,101)、rep(100,101)
我需要 3 个数值变量的集合,它们在所有组合中都有上述序列。由于有 5 个序列和 3 个变量,因此可以有 5*5*5 个组合,因此每个变量共有 12625 个(5*5*5*101)个数字(每个序列 101 个)。
这些可以分组在 12625 行和 4 列的 data.frame 中。第一列 (V) 将简单地具有 seq(1:12625) (可以使用行号代替它)。其他 3 列(A、B、C)将具有以上 5 个不同组合的序列。例如,前 101 行将在所有 3 个 A、B 和 C 中具有 0:100。接下来的 101 行将在 A 和 B 中具有 0:100,在 C 中具有 100:0。依此类推...
我可以将序列创建为:
s = list()
s[[1]] = 0:100
s[[2]] = 100:0
s[[3]] = rep(0,101)
s[[4]] = rep(50,101)
s[[5]] = rep(100,101)
但是如何进一步进行呢?我真的不需要数据框,但我需要一个函数,它返回一个列表,其中包含发送给它的数字(第一列或 V 列)的 c(A,B,C) 值。这个数字显然可以在 1 到 12625 之间变化。
我怎样才能创建这样的功能。我更喜欢矢量解决方案或使用应用族函数来优化速度的解决方案。
【问题讨论】:
标签: r