控制频率随机生成

时间:2017-03-15 12:24:48

标签: r statistics

我应该制作一个包含2个功能的随机数据框

driver = webdriver.Chrome()
driver.maximize_window() # now screen top-left corner == browser top-left corner 
driver.get("http://stackoverflow.com/questions")
question = driver.find_element_by_link_text("Questions")
y_relative_coord = question.location['y']
browser_navigation_panel_height = driver.execute_script('return window.outerHeight - window.innerHeight;')
y_absolute_coord = y_relative_coord + browser_navigation_panel_height
x_absolute_coord = question.location['x']

并且它工作正常,但我需要以只有1个表格单元格的值介于50和90之间的方式进行制作。

我不知道怎么办?

当前表格给了我

gender <- sample(c("Male","Female"), 10000, replace = TRUE, prob = c( 0.5, 0.5))
handed <- sample(c("left_Handed","right_Handed"), 10000, replace = TRUE, prob = c( 0.1, 0.9))

data <- data.frame(gender = gender, handed = handed)
table(data$gender, data$handed)

如你所见,它给了我2个单元格,其值低于100。

1 个答案:

答案 0 :(得分:1)

您可以使用命中和遗漏方法:

f <- function(){
    gender <- sample( c("Male","Female"), 10000, replace=TRUE, prob=c( 0.5, 0.5) )
    handed <- sample( c("left_Handed","right_Handed"), 10000, replace=TRUE, prob=c( 0.01, 0.9) )
    data<-data.frame(gender=gender,handed=handed)
    tb <- table(data$gender,data$handed)
    if (min(tb[,1]) < 50 && max(tb[,1])>=50) tb else f()
}

此函数以递归方式运行代码,直到获得它喜欢的输出。

典型运行:

> f()

         left_Handed right_Handed
  Female          59         4970
  Male            48         4923

当然,修改函数以便它使用循环而不是递归是很容易的,但上面的代码稍微简洁一些,并且第一列中单元格的预期值为50,有永远不会超过少数几个递归调用,因此堆栈空间不是问题。