问题标签 [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.
r - 调用函数时设置列名
考虑我们有一个数字 data.framefoo
并希望找到每两列的总和:
一切都很好,除了bar
. 我希望 的列名bar
显示 中的相关列foo
,例如在此示例中:
这很简单,但我想在同一bar <- combn(...)
命令中执行列标签。到底有没有?
r - 使用 R 中的 data.table 将多列添加到带有 = 的 data.table 中,只有一个函数调用
这是此问题的直接扩展。我有一个数据集,我想根据变量 x 和 y 找到变量 v 的所有成对组合:
该代码可以满足我的要求,但是两次函数调用使较大的数据集变慢。我的数据集有超过 300 万行和超过 130 万个 x 和 y 组合。关于如何更快地做到这一点的任何建议?我更喜欢这样的东西:
r - r中的combn()函数
我正在尝试对所有可能的向量组合执行点积。我能够找到所有可能的组合。我只是不太明白 combn() 中的 FUN 参数是如何工作的。以下是我的代码,感谢您的帮助!
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
r - 使用 ncol=n 生成所有 nCm 到一定 m 的二进制矩阵
想知道是否有更快的方法来实现以下目标:
我有一个最大向量。长度long1
全为零。如何在某些位置生成所有可能组合的矩阵,直到并包括最大值max1s
。
以下方法有效,但当返回矩阵很大时(例如 >1e5)似乎效率很低。
在这种情况下,它1
是长度为 4 的向量中 s 的所有组合,最大为 2:
我宁愿避免使用combinat::hcube
then 消除超过一定数量的行。s ,1
因为这种方法会为这样的应用程序创建不必要的大矩阵。
r - 与列表元素的所有可能组合相交
我有一个向量列表:
我想计算列表元素的所有可能成对组合之间的重叠长度,即(结果的格式无关紧要):
我知道combn(x, 2)
可以用来获取向量中所有可能的成对组合的矩阵,length(intersect(a, b))
这会给我两个向量重叠的长度,但我想不出一种方法将这两个东西放在一起。
任何帮助深表感谢!谢谢。
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
来查找我正在寻找的组合并重新绑定在一起。但是,如果我想复制其他变量,这不会像这样工作......
给出:
非常感谢有关如何获得这些组合以及预先存在的“颜色”变量和添加新的“值”变量的任何想法。
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 提出以下建议:
输出是:
在我看来,这种格式的输出在组合方面不如“按”列表清晰。
任何帮助将不胜感激。谢谢。
r - 更快版本的组合
有什么方法可以加快combn
命令从向量中获取 2 个元素的所有唯一组合?
通常会这样设置:
但是,combn
它比使用 data.table 计算所有可能的组合慢 10 倍(23 秒对我的计算机上的 3 秒)。
处理非常大的向量,我正在寻找一种仅通过计算唯一组合来节省内存的方法(例如combn
)来节省内存的方法,但使用 data.table 的速度(参见第二个代码片段)。
我很感激任何帮助。
r - 调用函数combn后保留列名
在查看有关列名和组合函数的另一篇文章后,请考虑相同的 data.frame。我们用所有 2 个可能的向量进行组合:
有没有办法在combn调用之后保留列名,所以在这种情况下我们可以得到“x y”而不是“X1.5 X4.8”,如下所示?