gpt4 book ai didi

r - 编写一个 R 函数来查找二进制子集

转载 作者:行者123 更新时间:2023-12-05 09:08:15 25 4
gpt4 key购买 nike

我有一个二进制向量 x=(1,0,0,1)。假定包含此向量自身的低阶项 (0,0,0,0)、(0,0,0,1)、(1,0,0,0) 和 (1,0,0,1) .我如何在 R 中找到这个低阶向量。

到目前为止我的理解是:基本上我们想要找到子集,用 0 替换每个 1。但是要在 R 中做到这一点?我是无知吗?

这里是我到目前为止所做的尝试。

a<-c(1,0,0,1)
M<-length(a)

for(i in 1:M){

ifelse(a[i]==1, a[i]<-0, next)
print(a)

}
[1] 0 0 0 1
[1] 0 0 0 0

我在详细寻找什么:例如,我有 4 个因素 A、B、C、D。这里的 (1,0,0,1) 表示 AD。

现在我想要 (1,0,0,1) 的一个子集,它表示 AD。在我的子集中,我不能有 B 和 C。结果将是二进制形式的 {} {A} {D} {AD} (0,0,0,0), (1,0,0,0),( 0,0,0,1),(1,0,0,1).

最佳答案

这是一个依靠 expand.grid 来完成繁重工作的方法:

vecs = lapply(a, seq, 0)   # keep 0s as 0, make 1s c(1, 0)
do.call(expand.grid, vecs) # generate all combinations
# Var1 Var2 Var3 Var4
# 1 1 0 0 1
# 2 0 0 0 1
# 3 1 0 0 0
# 4 0 0 0 0

关于r - 编写一个 R 函数来查找二进制子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63691747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com