首页 > 解决方案 > 如何在 R 中生成相关的无序名义变量?

问题描述

我需要生成两个具有 N 个无序名义变量的样本,其中每个变量具有不同的级别数:

1 个样本:3d 变量取决于 2nd。

2 样本:所有变量都取决于第一个。

如何在 R(或通过 Rcpp 的 C++)中做到这一点?你能建议一些包装或一般的想法吗?

rmult.bcl在 SimCorMultRes 包中找到了函数,但据我所知,用它来生成具有不同级别数的名义变量是不可能的。

标签: rcorrelationcategorical-data

解决方案


我不太明白您对样本 1 和样本 2 的要求,但不难使一个变量的分布取决于另一个变量的内容。我将用两个变量来说明。V2 中值的分布取决于 V1 中的值。

set.seed(2019)
V1 = sample(c("A", "B"), 100, replace=TRUE)
NumA = sum(V1 == "A")
V2 = character(100)
V2[V1 == "A"] = sample(c("X", "Y", "Z"), NumA, replace=TRUE)
V2[V1 != "A"] = sample(c("X", "Y", "Z"), 100-NumA, 
    prob=c(0.6, 0.3, 0.1),  replace=TRUE)
table(V1,V2)
   V2
V1   X  Y  Z
  A 11 24 18
  B 30 14  3

推荐阅读