样品在R中,样品量未知

时间:2014-12-05 09:20:31

标签: r while-loop conditional-statements sample

这个问题与Subset data with dynamic conditions in R的问题有关。 我们的想法是从数据框中创建一个必须满足某些条件的随机样本。

size参数指示样本应包含的行数。但是,只要条件得到满足,我们实际上并不关心有多少行。因此,在下面的示例中,我们将大小设置为“3”,而它也可以使用2。

有没有指明行数的方法?似乎sample()需要有一个样本大小...我想我可以设置范围(1:8),例如size参数。但是,一旦我设置简单(1:8),样本就会使用1。

dataset <- data.frame(balance=c(25000,50000,35000,40000,65000,10000,5000,2000,2500,5000),
                      rating=c(2.11,4.49,2.45,1.94,2,4.2,10,8,6,7.45)
                      ,id=c(1:10))

pick_records <- function(df,size,bal,rating, max.it) {
  i <- 1
  j <- 1
  while ( i == 1 ) {
    s_index <- sample(1:nrow(df),size)
    print(s_index)
    output <- df[s_index,]
    out_num <- lapply(output,as.numeric)

    if (sum(out_num$balance) > bal &
          mean(out_num$rating) <= rating      
    ) {
      return(output)
      break
    }
    print(j)
    j <- j + 1
    if ( j == max.it+1) {
      print('No solution found')
      break}     
  }
} 

#set parameters: #loans, total balance,max mean rating, #iterations
loans=2;balance=70000; rating=3;iterations=5000
pool <- pick_records(dataset,loans,balance,rating,iterations) 

0 个答案:

没有答案