gpt4 book ai didi

r - 使用 "source"会中断函数的返回

转载 作者:行者123 更新时间:2023-12-04 18:19:01 25 4
gpt4 key购买 nike

我有一个简单的函数脚本,最后一行是调用函数

fun<-function(){
readline("This is a test")
x<-c(4,5)
y<-c(5,6)
add<-x+y
sub<-x-y
return(list(add,sub))
}

fun()

如果我将其复制到我的 R 控制台中,我会得到预期的结果
This is a test
[[1]]
[1] 9 11

[[2]]
[1] -1 -1

但我一直在尝试使用“源”来自动提取我的脚本。如果我尝试使用源
source("/Users/Me/Desktop/R.test.R")

我失去了我的输出。我仍然得到 readline,但我丢失了返回数据,所以我得到了这个:
This is a test

如果我删除最后一行,我仍然可以使用 source 命令访问我的函数,然后手动输入“fun()”
source("/Users/Me/Desktop/R.test.R")
fun()

但我想把它变成一步交易。

有人可以解释为什么“剪切和粘贴”与使用源代码之间的区别,以及我如何使用源代码一步调用我的函数吗?

谢谢

最佳答案

当您直接在控制台中输入内容时,R 默认调用 print在该对象上以显示它。但它只直接在控制台中执行此操作。

尝试设置print.eval = TRUE当您调用 source .要查看发生了什么,请使用以下脚本尝试两种方式:

fun<-function(){
readline("This is a test")
x<-c(4,5)
y<-c(5,6)
add<-x+y
sub<-x-y
return(list(add,sub))
}

fun()

x <- 5
x

现在它更明确了。只需输入 x在控制台静默导致 R 到 print它。如果你在采购时想要这种行为,你必须这么说。

关于r - 使用 "source"会中断函数的返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11074982/

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