gpt4 book ai didi

R:在等待用户输入的同时运行计算

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

你看到一种在等待用户输入的同时在 R 中运行计算的方法吗?

我正在编写一个脚本来制作由用户输入定义的不同类型的图,但首先必须加载和处理大量数据。但事实上,用户可以在处理运行时开始定​​义他想要的东西——这就是我想做的!

我认为包 Rdsn 可能提供我需要的功能,但我无法弄清楚如何。

谢谢!

最佳答案

你没有给我太多的上下文,也没有提供可重现的代码,所以我只提供一个简单的例子。我对 Rdsn 包不熟悉,所以我将使用提供我知道的解决方案。

# create a function to prompt the user for some input
readstuff = function(){
stuff = readline(prompt = "Enter some stuff: ")
# Here is where you set the condition for the parameter
# Let's say you want it to be an integer
stuff = as.integer(stuff)
if(is.na(stuff)){
return(readstuff())
} else {
return(stuff)
}
}

parameter = readstuff()

print(parameter)
print(parameter + 10)

这里的关键是“源”脚本而不是“运行”它。您可以在 RStudio 的右上角找到“源”按钮。您也可以使用 source(yourscript)来源。

因此,对于您想要提示用户输入的每个参数,只需调用 readstuff() .您也可以稍微调整它以使其更通用。例如:
# create a function to prompt the user for some input
readstuff = function(promptMessage = "stuff", class = "integer"){
stuff = readline(prompt = paste("Enter the", promptMessage, ": "))
# Here is where you set the condition for the parameter
# Let's say you want it to be an integer
stuff = as(stuff, class)
if(is.na(stuff)){
return(readstuff(promptMessage, class))
} else {
return(stuff)
}
}

plotColor = readstuff("plot color", "character")
size = readstuff("size parameter")
xvarName = readstuff("x axis name", "character")

df = data.frame(x = 1:100, y = 1:100)

library(ggplot2)
p = ggplot(df, aes(x = x, y = y, size = size, color = plotColor)) +
labs(x = xvarName) + geom_point()
print(p)
if(is.na(stuff))如果 class 是字符,则语句将不起作用,但我不会详细介绍如何解决这个问题,因为这个问题主要是关于如何等待用户输入。如果用户输入的内容不是预期的,也有一些方法可以抑制警告消息,但同样,在这里谈论它有点偏离主题。

您必须注意的一件重要事情是,您希望 R 打印或绘制任何内容,都需要用 print() 包裹它。功能。否则采购它不会打印或绘制任何内容。此外,当输入的参数是字符串或字符时,不要添加引号。例如,对于 plotColor,在提示中键入 red 而不是“red”。

大部分 readline代码引用自 here :

关于R:在等待用户输入的同时运行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37656635/

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