R语言中如何正确获取tkmessageBox的返回值用于条件判断?
解决tkmessageBox返回值的条件判断问题
tkmessageBox返回的是Tcl对象而非原生R字符串,直接用==和字符串比较会触发类型不匹配错误。要获取可用于条件判断的返回值,需通过tclvalue()函数将其转换为R字符串类型。
修正后的代码示例:
require(tcltk) msgBox1 <- tkmessageBox(title = "Trial", message = "Run code?", icon = "info", type = "yesno") # 提取字符串形式的返回结果 selected <- tclvalue(msgBox1) if (selected == 'yes') { print('yesterday') }
也可以直接在判断语句中完成转换:
require(tcltk) msgBox1 <- tkmessageBox(title = "Trial", message = "Run code?", icon = "info", type = "yesno") if (tclvalue(msgBox1) == 'yes') { print('yesterday') }
内容的提问来源于stack exchange,提问作者Log On
相关产品推荐
相关产品推荐

