如何创建包含指定数量TRUE、FALSE的随机逻辑向量
生成指定数量TRUE/FALSE的随机逻辑向量
你现在的问题是sample()默认按等概率抽取元素,没法精准控制TRUE和FALSE的数量对吧?其实解决起来很简单——我们可以先构造一个包含7个TRUE和3个FALSE的固定向量,再随机打乱它的顺序就可以了。
解决方案代码:
# 先创建包含指定数量的逻辑向量 vector <- c(rep(TRUE, 7), rep(FALSE, 3)) # 随机打乱向量顺序 vector <- sample(vector)
示例输出:
vector
[1] TRUE TRUE FALSE TRUE FALSE FALSE TRUE TRUE TRUE TRUE
补充说明:
rep(TRUE, 7)会生成7个重复的R原生逻辑型TRUE,rep(FALSE, 3)生成3个FALSE,拼接后就得到了数量完全符合要求的基础向量。- 调用
sample(vector)时不指定size参数,会默认对整个向量做随机排列,这样既保证了TRUE和FALSE的数量准确,又实现了随机性。 - 如果你确实需要字符型的"TRUE"/"FALSE"(而非R原生逻辑型),只需要把代码里的
TRUE和FALSE换成字符串形式:c(rep("TRUE", 7), rep("FALSE", 3))就行。
内容的提问来源于stack exchange,提问作者icedcoffee
相关产品推荐
相关产品推荐

