我有一个简单的函数脚本,最后一行是调用函数
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”来自动提取我的脚本。如果我尝试使用源
source("/Users/Me/Desktop/R.test.R")
我放弃了输出。我仍然得到了readline,但是我松开了返回数据,所以我得到了这个:
This is a test
如果删除最后一行,我仍然可以使用source命令访问我的函数,然后手动输入“fun()”
source("/Users/Me/Desktop/R.test.R")
fun()
但我想这是一个一步的交易。
有人可以解释为什么“剪切和粘贴”与使用源之间的区别,以及我如何使用source来一步调用我的函数?
由于
答案 0 :(得分:4)
当您直接在控制台中输入内容时,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
。如果你在采购时想要这种行为,你必须这样说。