问题标签 [combn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
246 浏览

r - 调用函数时设置列名

考虑我们有一个数字 data.framefoo并希望找到每两列的总和:

一切都很好,除了bar. 我希望 的列名bar显示 中的相关列foo,例如在此示例中:

这很简单,但我想在同一bar <- combn(...)命令中执行列标签。到底有没有?

0 投票
2 回答
415 浏览

r - 使用 R 中的 data.table 将多列添加到带有 = 的 data.table 中,只有一个函数调用

这是此问题的直接扩展。我有一个数据集,我想根据变量 x 和 y 找到变量 v 的所有成对组合:

该代码可以满足我的要求,但是两次函数调用使较大的数据集变慢。我的数据集有超过 300 万行和超过 130 万个 x 和 y 组合。关于如何更快地做到这一点的任何建议?我更喜欢这样的东西:

0 投票
2 回答
1704 浏览

r - r中的combn()函数

我正在尝试对所有可能的向量组合执行点积。我能够找到所有可能的组合。我只是不太明白 combn() 中的 FUN 参数是如何工作的。以下是我的代码,感谢您的帮助!

0 投票
2 回答
612 浏览

matlab - 在matlab中生成具有所有可能性的矩阵

是否有一个简单的命令可以做到这一点:

我找到了这个http://www.mathworks.co.kr/matlabcentral/fileexchange/7147-combn--4-3-但这在matlab中还不是一个东西

试过M = combn([0 1],3)了,我得到了 Undefined function 'combn' for input arguments of type 'double'. in return

0 投票
1 回答
147 浏览

r - 使用 ncol=n 生成所有 nCm 到一定 m 的二进制矩阵

想知道是否有更快的方法来实现以下目标:

我有一个最大向量。长度long1全为零。如何在某些位置生成所有可能组合的矩阵,直到并包括最大值max1s

以下方法有效,但当返回矩阵很大时(例如 >1e5)似乎效率很低。

在这种情况下,它1是长度为 4 的向量中 s 的所有组合,最大为 2:

我宁愿避免使用combinat::hcubethen 消除超过一定数量的行。s ,1因为这种方法会为这样的应用程序创建不必要的大矩阵。

0 投票
3 回答
6120 浏览

r - 与列表元素的所有可能组合相交

我有一个向量列表:

我想计算列表元素的所有可能成对组合之间的重叠长度,即(结果的格式无关紧要):


我知道combn(x, 2)可以用来获取向量中所有可能的成对组合的矩阵,length(intersect(a, b))这会给我两个向量重叠的长度,但我想不出一种方法将这两个东西放在一起。

任何帮助深表感谢!谢谢。

0 投票
1 回答
200 浏览

r - 根据观察复制和修改数据帧的行 [R]

这是对这个问题的跟进: 复制数据帧的观察结果,但也替换 R 中的特定变量值

我尽量写得简洁,同时提供所有必要的信息。在这个当前示例中,我有一个如下所示的 df:

期望的输出

我希望它最终看起来像这样(行的顺序对我来说并不重要):

每当观察到具有多个不重叠/不匹配条目的 alpha 或 beta 时,就会扩展该观察。例如,原始 df 的第 1 行有 alpha="1" 和 beta="2, 4"。这些成为输出中的两个单独的行,其中 beta 的“2”和“4”分开。保存在变量“颜色”中的信息为每次观察保存。此外,新变量“值”的值为 1。

这个问题和上一个问题的主要区别在于存在 alpha==beta 的行。

在这里,我只想保留 alpha 和 beta 的唯一组合,而不是重复。例如,原始 df 的第 8 行有 alpha="1, 2, 3" 和 beta="1, 2, 3"。我想有单独的行,其中“alpha=1,beta=2”,“alpha=1,beta=3”,“alpha=2,beta=3”。同样,“颜色”变量将被复制。但是,在这里,值需要是“0.5”。

我试过的:

我无法弄清楚如何将这一切合二为一,所以我首先根据 alpha 是否等于 beta 来对 df 进行子集化。

这使:

然后观察 alpha==beta 的地方,这就是我卡住的地方......

我的想法是使用拆分数据strsplit,然后使用它combn来查找我正在寻找的组合并重新绑定在一起。但是,如果我想复制其他变量,这不会像这样工作......

给出:

非常感谢有关如何获得这些组合以及预先存在的“颜色”变量和添加新的“值”变量的任何想法。

0 投票
2 回答
920 浏览

r - 如何将“按”[列表]输出转换为数据框

data=data.frame(col1=c('m1','m1','m1','m2','m2','m2','m3','m3'),class=c('a' ,'b','c','a','b','c','a','b'))我有一个有 2 列的 data.frame,第一列是模型列表,第二列模型属性列表。我需要根据它们共享的属性显示模型的组合。我使用'by'函数得到了组合列表,如下所示:

输出正是我所需要的,但我需要它以 data.frame 格式而不是列表,并且出现在每个列表顶部的“类”的名称应列在第三列中:

所以,我尝试了这个:

但是输出只显示了 'col1' 的组合(使用 id 值而不是名称)而不是 'class' 属性,它位于 'by' 输出中每个列表的顶部。do.call 的输出如下所示:

也试过这个:

并收到此错误: NextMethod() 中的错误:无效值

决赛桌应如下所示:

@Richard Scrivens 提出以下建议:

输出是:

在我看来,这种格式的输出在组合方面不如“按”列表清晰。

任何帮助将不胜感激。谢谢。

0 投票
5 回答
3760 浏览

r - 更快版本的组合

有什么方法可以加快combn命令从向量中获取 2 个元素的所有唯一组合?

通常会这样设置:

但是,combn它比使用 data.table 计算所有可能的组合慢 10 倍(23 秒对我的计算机上的 3 秒)。

处理非常大的向量,我正在寻找一种仅通过计算唯一组合来节省内存的方法(例如combn)来节省内存的方法,但使用 data.table 的速度(参见第二个代码片段)。

我很感激任何帮助。

0 投票
1 回答
399 浏览

r - 调用函数combn后保留列名

在查看有关列名和组合函数的另一篇文章后,请考虑相同的 data.frame。我们用所有 2 个可能的向量进行组合:

有没有办法在combn调用之后保留列名,所以在这种情况下我们可以得到“x y”而不是“X1.5 X4.8”,如下所示?