我试图在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