问题标签 [subset]
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.
algorithm - 按规则生成子集
假设我们在数据库中有 5000 个用户。用户行有性别列、出生地点列和状态(已婚或未婚)列。
如何生成满足这些条件的随机子集(假设 100 个用户):
- 40% 应该是男性,60% 应该是女性
- 50%应该出生在美国,20%出生在英国,20%出生在加拿大,10%在澳大利亚
- 70%应该结婚,30%不应该。
这些条件是独立的,也就是说我们不能这样做:
- (0.4 * 0.5 * 0.7) * 100 = 14 位男性用户,在美国出生并已婚
- (0.4 * 0.5 * 0.3) * 100 = 6 位男性用户,出生于美国且未婚。
这一代有算法吗?
algorithm - 所有组合与每组一个元素的乘积之和
鉴于我有 m 个非空的不同集合(标记为 Z[1]、Z[2]、...、Z[m]),我的目标是计算所有可能子集的总和,其中每个子集只有一个元素放。每个子集的大小被定义为其成员的乘积。例如:
Z[ 1 ] = {1,2,3}
Z[ 2 ] = {4,5}
Z[ 3 ] = {7,8}
应该导致:
1*4*7 + 1*4*8 + 1*5*7 + 1*5*8 + 2*4*7 + 2*4*8 + 2*5*7 + 2*5*8 + 3*4*7 + 3*4*8 + 3*5*7 + 3*5*8 = 810
虽然这很容易编码(用任何语言),但这是对著名的子集和问题的重述吗?如果没有,请提供计算此总和的多项式时间算法(首选伪代码或 python!)。如果不存在多项式时间算法,请解释原因。
r - 在 R 中使用 OR 条件和字符串进行子集化
我有一个大约 40 列的数据框,第二列 data[2] 包含其余行数据描述的公司名称。但是,公司名称因年份而异(2009 年数据为 09,2010 年无数据)。
我希望能够对数据进行子集化,以便我可以同时提取两年。这是我正在尝试做的一个例子......
本质上,我很难在子集函数中使用 OR 运算符。
但是,我尝试了其他选择:
也许使用字符串函数有更简单的方法?
任何想法都会受到赞赏。
data-structures - 将 nlminb 应用于数据子集(按索引或标签)并将程序返回的内容存储为新数据框
我想知道是否有人可以帮助我完成这个看似简单的任务。我正在使用 nlminb 进行优化并按索引计算一些统计信息。这是来自 nlminb 帮助的示例。
假设我生成随机变量x, y
并且z
wherez
充当索引(从 1 到 3)。
1)如何应用nlminb(c(9, 12), hdev)
到按索引设置的数据z
?换句话说,我想分别nlminb(c(9, 12), hdev)
计算z=1, z=2
和z=3
。我尝试了by(A, z, function(A) nlminb(c(9,12), hdev))
and sparseby(A, z, function(A) nlminb(c(9,12), hdev))
,但它们为 的每个值返回完全相同的值z
。
2)我想把每个输出变成一个新的数据框,这样它就会变成一个 3X2 矩阵。
由于 nlminb 返回统计的摘要,所以我需要使用CASEZ1<-nlminb$par, CASEZ2<-nlminb$par, CASEZ3<-nlminb$par
然后使用 cbind 将它们组合起来。但是,我想自动化这个过程,因为我正在处理的真实数据的类别比z
这里提供的要多得多。
如果我没有说清楚,请告诉我。我会看看我是否可以复制我正在处理的实际数据集和功能(我只是在这台计算机上没有它们)。
非常感谢您提前。
xml - 如何使用 XSLT 获取信息和排序,一个只有标识符的元素子集?
我是 XSLT 的新手,无法解决以下问题:
我有一个这样的xml文件:
我想制作这个:
正如您所看到的,这个想法是通过检索相应的信息来“完成”id 的子集,并根据它们在<data>
.
请注意,<data>
它应该有很多子节点。
此外,我将带有<data>
元素信息的节点与 id 的子集分开,因为我将有很多子集,并且我不想“到处”都有重复的信息。
提前致谢。
r - 用 group-id 对数据进行子集化的 for 循环的更高性能替代方案是什么?
我在研究中遇到的一个反复出现的分析范式是需要根据所有不同的组 id 值进行子集化,依次对每个组执行统计分析,并将结果放入输出矩阵中以供进一步处理/汇总。
我通常如何在 R 中执行此操作类似于以下内容:
这最终对我有用,但根据数据的大小和我正在使用的组的数量,这可能需要长达三天的时间。
除了扩展到并行处理之外,还有什么“技巧”可以让这样的东西运行得更快吗?例如,将循环转换为其他东西(比如应用包含我想在循环内运行的统计信息的函数),或者消除将数据子集实际分配给变量的需要?
编辑:
也许这只是常识(或抽样错误),但我尝试在我的一些代码中使用括号进行子集化,而不是使用子集命令,它似乎提供了轻微的性能提升,这让我感到惊讶。我有一些使用与上面相同的对象名称在下面输出的代码:
更新:
在其中一个答案中,jorgusch 建议我使用 data.table 包来加快我的子集化。因此,我将其应用于本周早些时候遇到的一个问题。在一个有超过 1,500,000 行和 4 列(ID、Var1、Var2、Var3)的数据集中,我想计算每组中的两个相关性(由“ID”变量索引)。有50,000多个组。下面是我的初始代码(与上面非常相似):
我现在正在重新运行它,以准确衡量这需要多长时间,但据我所知,我早上进入办公室时开始运行它,并在下午中旬的某个时间结束。图 5-7 小时。
重组我的代码以使用 data.table....
将使用 data.table 的结果与我使用 for 循环对所有 ID 进行子集化并手动记录结果的结果进行比较,它们似乎给了我相同的答案(尽管我必须更彻底地检查一下)。这看起来是一个相当大的速度提升。
更新 2:
使用子集运行代码终于又完成了:
更新 3:
我想看看使用同样推荐的 plyr 包是否有任何不同的结果。这是我第一次使用它,所以我的工作效率可能有些低,但与带有子集的 for 循环相比,它仍然有很大帮助。
使用与以前相同的变量和设置...
r - R:如何将选择表达式列表(在这种情况下为字符串)传递给子集函数?
以下是一些示例数据:
我可以使用子集拉出选择性的单行:
并使用逻辑 OR 拉出多行
但是,如果我有一长串系列表达式的列表,那么输入起来真的很烦人,所以我宁愿以更好的方式定义它们,如下所示:
并且能够做这样的事情,
以上显然失败了,我只是不确定最好的方法是什么?
algorithm - 查找给定数组的每个 (n-1) 个子集的乘积
很抱歉删除了原来的问题,这里是:我们有一个包或一个包含 n 个整数的数组,我们需要找到每个 (n-1) 个子集的乘积。例如:
S = {1, 0, 3, 6}
ps[1] = 0*3*6 = 0;
ps[2] = 1*3*6 = 18;等等
经过讨论,我们需要处理这三种情况,如下所示:
谢谢。
c# - 在 C# 中快速检索大量集合中使用的属性子集
我有一个巨大的集合(我可以使用 OfType<>() 将其转换为可枚举的对象)。这些对象中的每一个都有一个Category
属性,该属性是从应用程序中其他位置的列表中提取的。此集合可以达到数百个项目的大小,但可能只有 6/30 的可能类别被实际使用。找到这 6 个类别的最快方法是什么?巨大的 Collection 的大小使我无法只遍历整个事物并返回所有唯一值,那么是否有更快的方法来完成此操作?
理想情况下,我会将类别收集到List<string>
.
linq - 使用 Linq 过滤子集
想象一个很长的枚举,太大而无法合理地转换为列表。还想象一下,我想从列表中删除重复项。最后想象一下,我知道只有一小部分初始枚举可能包含重复项。最后一点使问题变得实用。
基本上,我想根据一些谓词过滤掉列表,只在该子集上调用 Distinct(),但还要与谓词返回 false 的枚举重新组合。
谁能想到一个好的惯用的 Linq 方式来做到这一点?我想问题归结为以下几点:
使用 Linq,您如何对谓词枚举执行选择性处理并将结果流与谓词中的拒绝案例重新组合?