簡體   English   中英

在 R 的重復循環中使用 askYesNo

[英]Using askYesNo in a repeat loop in R

我正在嘗試編寫一段代碼,它將向您顯示一個數據框,然后有一個彈出框詢問您是否對那里的值感到滿意。 我用過 askYesNo,但我不依附於此。

我想這樣做,如果您選擇“是”,它將繼續使用彈出框重復代碼,直到您選擇“否”。

我的問題是它會重復代碼,但也不會重復彈出框,因此它無處可破解。

如果可能的話,我還希望代碼看起來很基本。 我很難理解大塊的代碼。 行越少越好,但我會盡我所能。

這是我一直在嘗試的代碼(因為這是一個測試,其中一些代碼很混亂並且名稱不具代表性。它與更大的代碼位相關,我試圖在測試站中使其更容易):

rasch_test <- data.frame(a=rnorm(3), b=rnorm(3), c=rnorm(3))
params_test <- rasch_test
item_parameters_test <- params_test[,-c(ncol(params_test))]


if(any(abs(item_parameters_test)>0.5)) {
  html_print(pre(paste0(capture.output(print(item_parameters_test)), collapse="\n")))}    

CHOICE<- askYesNo("ARE YOU WORRIED ABOUT THE RANGE OF THESE VALUES?") 

if (CHOICE == "TRUE"){
  
  repeat { 
    rasch_test <- data.frame(a=rnorm(3), b=rnorm(3), c=rnorm(3))
    params_test <- rasch_test
    item_parameters_test <- params_test[,-c(ncol(params_test))]
    html_print(pre(paste0(capture.output(print(item_parameters_test)), collapse="\n")))} 
  CHOICE<- askYesNo("ARE YOU WORRIED ABOUT THE RANGE OF THESE VALUES?")
  
  if (CHOICE == FALSE){
    break
  }
}

if (CHOICE == "FALSE"){
  print("you chose no")
}

您可以將 askYesNo 調用放在while()條件中,如下所示:

library(htmltools)
new_table <- function() {
  rasch_test <- data.frame(a=rnorm(3), b=rnorm(3), c=rnorm(3))
  params_test <- rasch_test
  params_test[,-c(ncol(params_test))]
}

tbl = new_table()
if(any(abs(tbl)>0.5)) {
  html_print(pre(paste0(capture.output(print(tbl)), collapse="\n")))}    

while(askYesNo("ARE YOU WORRIED ABOUT THE RANGE OF THESE VALUES?")) {
  html_print(pre(paste0(capture.output(print(new_table())), collapse="\n")))} 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM