gpt4 book ai didi

r - 让 readline 等待 R 中的输入

转载 作者:行者123 更新时间:2023-12-04 00:05:56 31 4
gpt4 key购买 nike

我试图让我的代码在继续之前要求我输入“TRUE”或“FALSE”值。

如果我一次运行一行,它目前可以正常工作,但是当我在 RStudio 中一次运行所有代码时,它只会继续而不等待用户输入并为我的参数记录一个值“”。

raw <- readline("TRUE or FALSE -- this is a validation run: ")


if (raw == "F" | raw == "FALSE" | raw == "False"){
validation <- F
} else{
validation <- T
}
rm(raw)

理想情况下,我想要一个无论我如何运行都有效的答案- RScript , source在 RStudio 中,或运行它(即选择代码并按 run 或 ctrl-enter)。

最佳答案

如果您想以交互模式执行此操作,那么您已经有了答案,但不能与 Rscript 一起使用。对于这种情况,您需要使用 cat 向控制台发送消息。 :

如果此测试文件名为“prompt.r”并且位于您在系统控制台 session 中工作的目录中:

cat("a string please: ");
a <- readLines("stdin",n=1);
cat("You entered")
str(a);
cat( "\n" )

然后你可以从命令行运行它
$ Rscript prompt.r

如果您想要一个通用脚本,那么这将在交互式条件下运行您的脚本,而我的脚本则用于非交互式条件:
if (interactive() ){raw <- 
readline("TRUE or FALSE -- this is a validation run: ")

if (raw == "F" | raw == "FALSE" | raw == "False"){
validation <- F
} else{
validation <- T
}
rm(raw) } else{
# non-interactive
cat("a string please: ");
a <- readLines("stdin",n=1);
cat("You entered")
str(a);
cat( "\n" )}

关于r - 让 readline 等待 R 中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27112370/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com