如何在 R 中创建一个二进制数据集,并对 R 中 1 的比例有几个限制

问题描述 投票:0回答:1

我正在考虑获取两种治疗方法 A 和 B 的资格综合数据集,并有限制。约束条件是 A 60% 为 1,B 为 80% 1,两者均为 25% 1,两者均为 0% 0。我还没有真正取得任何进展,因为我只得到了单独的列的以下内容,还没有得到联合约束的任何内容。

任何帮助将非常感激

# Define the size of the dataset
n <- 1000  # Number of observations

# Generate treatment A
treatment_A <- rep(0, n)
treatment_A[1:(0.6*n)] <- 1

# Generate treatment B
treatment_B <- rep(0, n)
treatment_B[1:(0.8*n)] <- 1 

n=10 时所需输出的示例

dat <- data.frame(A=c(1,1,1,1,1,1,0,0,0,0),
                  B=c(0,0,0,1,1,1,1,1,1,1))

其中有 60% A,70% B,30% A 和 B,0% 没有 A 和 B。不完全正确,但接近。

r dataframe
1个回答
0
投票

AB 值有 4 种:00、01、10、11。设

a
b
c
d
分别为每种类型的计数。

那么你的约束是

a+b+c+d = n
c+d = 0.6*n
b+d = 0.8*n
d = 0.25*n
a = 0
。 这些方程没有解,因此不可能准确地实现您想要做的事情。 近似解有很多;要选择其中之一,您需要决定如何惩罚违反约束的行为。

© www.soinside.com 2019 - 2024. All rights reserved.