我有一个关于使用进度条的问题,我搜索了有关该主题的信息,并找到了使用条形图作为tkProgressBar tcltk库的一些示例,是否有人知道如何在带有循环和比较器的复杂代码中使用它们? 有谁知道如何使用这种类型的酒吧?我给出了一个代码示例来了解我所引用的代码类型
REGION_value<-as.character(GET_TEST_REGION(DF_TEST_file))
SESSION_value<-as.character(GET_TEST_SESSION(DF_TEST_file))
if(INIT_On_Time_value!="NULL" && END_On_Time_value!="NULL"){
INIT_On_Time_value<-as.numeric(INIT_On_Time_value)
}
if(init_power_value!="NULL" && end_power_value!="NULL"){
init_power_value<-as.numeric(init_power_value)
}
#parse id_device
DF_device_value<-PARSE_status(URL_DEVICE_value)
auxREST_REQ<-REST_GET_STOP_DEVICE(DF_device_value,URL_DEVICE_value)
DF_inventory_items<-PARSE_INVENTORY_items(DF_device_value, URL_DEVICE_value)
#-------------------------------------------#
if(nrow(DF_inventory_items)>0){
DF_epc_list<-GET_EPC_list(DF_inventory_items)
DF_found_epc_tags<-FOUND_COMPARE_TAGS(DF_READ_EXTERNAL_LIST_EPC_TAGS, DF_epc_list)
}
if(init_power_value!="NULL" && end_power_value!="NULL"){
if(init_power_value > end_power_value){
init_power_value<-aux1
}
inventory_DF_List<-list()
aux<-seq(init_power_value, end_power_value, 0.5)
size_for<-length(aux)
power_value_init=init_power_value
for(i in size_for:1){
DF_inventory_items_List<-PARSE_INVENTORY_items(DF_device_value, URL_DEVICE_value)
if(nrow(DF_inventory_items_List)>0){
DF_inventory_items_List<-subset(DF_inventory_items_List, select=(-tags))
DF_inventory_items_List<-subset(DF_inventory_items_List, select=(-props))
}
inventory_DF_List[[i]]<-DF_inventory_items_List
if(nrow(DF_inventory_items_List)>0){
epc_list[[i]]<-GET_EPC_list(DF_inventory_items_List)
else{
found_epc_tags_list[[i]]<-data.frame()
}
power_value_init=power_value_init+0.5
}
DF_FOUND_EPC<-data.frame()
for(i in length(found_epc_tags_list):1){
DF_N_EPC[i,1]<-nrow(aux_epc)
}
colnames(DF_N_EPC)<-c("total_epc")
colnames(DF_FOUND_EPC)<-c("found_epc")
DF_N_EPC_AND_FOUND_EPC<-cbind(df_power_values,DF_N_EPC, DF_FOUND_EPC)
DF_N_EPC_AND_FOUND_EPC_PER100<-cbind(df_power_values,DF_N_EPC, DF_FOUND_EPC_PER100)
colnames(DF_N_EPC_AND_FOUND_EPC)<-c("power_value","total_epc","found_epc")
FINAL_MIN_VALUE_FOUND_ITEMS<- min(DF_N_EPC_AND_FOUND_EPC[DF_N_EPC_AND_FOUND_EPC[,3] == max(DF_N_EPC_AND_FOUND_EPC[,3]),1])
FINAL_MIN_VALUE_MAX_ITEMS <- min(DF_N_EPC_AND_FOUND_EPC[DF_N_EPC_AND_FOUND_EPC[,2] == max(DF_N_EPC_AND_FOUND_EPC[,2]),1])
}else{
FINAL_MIN_VALUE_FOUND_ITEMS<-"Not executed"
FINAL_MIN_VALUE_MAX_ITEMS<-"Not executed"}
#HIST_EPC<-HIST_EPC_list(DF_TAG_PHASE_EPC_counter)
HTML_OUTPUT_ITERATIONS(df_power_values, df_on_time_values, inventory_DF_List_on_time, inventory_DF_List)
#PDF_FILE<-Pdf_print_inform(DF_inventory_items, DF_TAG_PHASE_EPC_counter, DF_READ_EXTERNAL_LIST_EPC_TAGS, DF_epc_list )
答案 0 :(得分:2)
不是tkProgressBar
相关的答案,但似乎您可能正在搜索某些计算进度指示器。当我非常懒惰(而且,天哪,我多久),我使用以下方案:
niter <- 853 # number of iterations
for (i in seq_len(niter)) {
Sys.sleep(0.1) # some fancy time-consuming operation
cat(sprintf("\r%.2f%%", i/niter*100)) # print progress
}
cat("\n") # finalize
它只是在控制台上打印状态。 HTH
编辑:或者,正如@Thomas建议的那样,txtProgressBar
可能派上用场:
niter <- 853
pb <- txtProgressBar(1, niter)
for(i in seq_len(niter)) {
Sys.sleep(0.01)
setTxtProgressBar(pb, i)
}
close(pb)