使用 select.list 在交互式用户输入中打印小标题或数据框
printing a tibble or data frame in an interactive user input with select.list
我想在 R 控制台中捕获一些用户输入。除了捕获用户输入外,我还想打印一个 tibble 来帮助用户决定 select 的输入。这是一个简单的例子:
library(tidyverse)
input <- tibble(color = c("blue", "green"),
words = c("test", "hello"))
utils::select.list(c(as.character(c("Yes", "No"))),
title = print(c(input, "\nDo all words contain letters?")),
multiple = FALSE)
这显然行不通,因为 select.list 说:
'title' must be NULL or a length-1 character vector
所以问题是我如何打印 tibble 和 question/message 并捕获用户输入。乐于使用某物。除了 select.input
.
理想的印刷品是……。喜欢:
# A tibble: 2 x 2
color words
<chr> <chr>
1 blue test
2 green hello
Do all words contain letters?
1: Yes
2: No
你可以包装一个函数,如下所示:
f <- function(tbl) {
print(tbl)
cat("\n")
utils::select.list(
c(as.character(c("Yes", "No"))),
title = "Do all words contain letters?",
multiple = FALSE)
}
用法
f(input)
# A tibble: 2 x 2
color words
<chr> <chr>
1 blue test
2 green hello
Do all words contain letters?
1: Yes
2: No
我想在 R 控制台中捕获一些用户输入。除了捕获用户输入外,我还想打印一个 tibble 来帮助用户决定 select 的输入。这是一个简单的例子:
library(tidyverse)
input <- tibble(color = c("blue", "green"),
words = c("test", "hello"))
utils::select.list(c(as.character(c("Yes", "No"))),
title = print(c(input, "\nDo all words contain letters?")),
multiple = FALSE)
这显然行不通,因为 select.list 说:
'title' must be NULL or a length-1 character vector
所以问题是我如何打印 tibble 和 question/message 并捕获用户输入。乐于使用某物。除了 select.input
.
理想的印刷品是……。喜欢:
# A tibble: 2 x 2
color words
<chr> <chr>
1 blue test
2 green hello
Do all words contain letters?
1: Yes
2: No
你可以包装一个函数,如下所示:
f <- function(tbl) {
print(tbl)
cat("\n")
utils::select.list(
c(as.character(c("Yes", "No"))),
title = "Do all words contain letters?",
multiple = FALSE)
}
用法
f(input)
# A tibble: 2 x 2
color words
<chr> <chr>
1 blue test
2 green hello
Do all words contain letters?
1: Yes
2: No