R中的 menu()将后续代码作为输入

  • 本文关键字:代码 menu 中的 r
  • 更新时间 :
  • 英文 :


我试图在r脚本内的函数中包含提示符。主要目的是用户可以选择应该选择哪些数据。然后继续处理。我试图通过使用utils中的menu()来实现这一点。然而,代码的执行并没有停止。它在控制台中显示提示,但代码继续执行,这导致下一行代码成为menu()调用的用户响应。

这里有一个最小的例子:

select_data <- function(dat) {

resp <- menu(c("1", "2", "3"), title = "Choose number of carburetors")

sel_dat <- dat %>%
filter(carb == resp)

return(sel_dat)
}
calc_mean_hp <- function(dat) {

mean_hp <- mean(dat$hp)

return(mean_hp)
}
selected <- select_data(mtcars)
hp <- calc_mean_hp(selected)

运行整个代码的结果是将hp <- calc_mean_hp(selected)作为menu()调用的用户输入。我得到menu()只是作为输入接下来会发生什么,但我可以在menu()调用时以某种方式停止代码执行,或者我需要找到另一个解决方案吗?

欢呼。

一个选项是将mean的计算包含在与menu相同的函数中。

select_data_and_return_mean <- function(dat) {

resp <- menu(c("1", "2", "3"), title = "Choose number of carburetors")
sel_dat <- dat %>%  filter(carb == resp)
mean_hp <- mean(sel_dat$hp)
return(mean_hp)
}
selected <- select_data_and_return_mean(mtcars)
Choose number of carburetors 
1: 1
2: 2
3: 3
Selection: 2
selected
#[1] 117.2

最新更新