我有一个 \xc3\x97 n 矩阵,其中值在 [0,1] 之间,并且每列都有相同的值。
\n这些值表示矩阵的每个元素取值 TRUE 或 FALSE 的概率。
\n我正在寻找一种快速方法,将概率矩阵转换为基于每个元素的独立随机样本的 TRUE/FALSE 值矩阵。
\n目前,此代码生成我想要的内容(tf_matrix):
\nn <- 10\np_true <- runif(n,0,1)\n\np_matrix <- matrix(p_true,n,n, byrow=T)\ntf_matrix <- matrix(F, n,n)\n\nfor(i in 1:nrow(tf_matrix)) {\n \n for(j in 1:ncol(tf_matrix)) {\n \n tf_matrix[i,j] <- sample(c(T,F), size = 1, prob = c(p_matrix[i,j], 1-p_matrix[i,j]))\n \n }\n}\n\nRun Code Online (Sandbox Code Playgroud)\n然而,这可能非常慢,因为它使用两个 for 循环,并且我需要对一个大矩阵一遍又一遍地执行此操作。
\n有没有办法提高效率(即尽可能快)?
\n