【问题标题】:R all combinations of 3 vectors with conditionsR 3个带有条件的向量的所有组合
【发布时间】:2014-04-14 18:31:54
【问题描述】:

我有两个向量

vector1 = c(0.9,0.8,0.7,0.6,0.5)
vector2 = c(10,20,30)

我现在想要这些向量中元素的所有组合,而 vector2 被使用了两次。我对此使用expand.grid()

combinations = expand.grid(vector1,vector2,vector2)

结果是一个包含Var1Var2Var3 列的框架。

现在我想在某些条件下将第一个向量与第二个向量结合起来。 例如。从 vector1 的 0.9 到 0.7 只能与 Var2 >= Var3 结合使用。并且 0.6 到 0.5 只能与 Var2 <= Var3 结合使用。

我该怎么做?

这是一个例子。实际组合数约为 18,000 个元素,小数点后 3 位。所以我也在寻找一种有效的方法。

【问题讨论】:

    标签: r vector conditional-statements combinations


    【解决方案1】:

    为什么不只生成网格,然后生成子集。例如,

    co = expand.grid(vector1,vector2,vector2)
    subset(co, (Var1 >= 0.7 & Var1 <= 0.9) & Var2 >= Var3  )
    

    【讨论】:

    • 谢谢。我已经尝试过了,我应该把它放在我的问题中。这行得通,但我不喜欢它,因为它“破坏”了行号。此外,我不喜欢创建完整数据框(真实数据框相当大)然后构建它的子集的想法。有没有其他方法可以做到这一点?
    • “破坏”行号** - if you meant rownames it can be reassigned using rownames(co) - 有多大,请在您的问题中说明。
    • 大约 18,000 个元素,小数点后 3 位。
    • 那我就选择了这种方式...谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-01-10
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    相关资源
    最近更新 更多