为什么不能在while循环中使用data.entry更改数据?
当我用scan输入3 4 100,并在data.entry中更改它时,但更改的数据不会分配到游戏中,为什么 正如@r2evans所说,我将我的代码修复为以下代码,问题解决了为什么不能在while循环中使用data.entry更改数据?,r,R,当我用scan输入3 4 100,并在data.entry中更改它时,但更改的数据不会分配到游戏中,为什么 正如@r2evans所说,我将我的代码修复为以下代码,问题解决了 change<-function(){ play <- scan(what="character") numbers<-c("1","3","4","9","10") while(! all(is.element(play,numbers))){ data.entry(play) }} change(
change<-function(){
play <- scan(what="character")
numbers<-c("1","3","4","9","10")
while(! all(is.element(play,numbers))){
data.entry(play)
}}
change()
这仍然不是一个好的技术,当我将代码放入程序中时,returnplay之后的代码将永远不会执行
我将其修改为:
change<-function(){
play <- scan(what="character")
numbers<-c("1","3","4","9","10")
while(! all(is.element(play,numbers))){
data.entry(play)
return(play)
}}
change()
我不熟悉data.entry,但它对我来说似乎很好。如果您提供data.entry,我们可能能够提供一些见解。缺少这一点,功能一般不应该依赖于副作用,所以游戏是通过价值而不是参照来传递的。这意味着在函数内部对其进行的任何更改都是函数的本地更改,如果未返回并捕获,则会丢失。
change<-function(){
play <- scan(what="character")
numbers<-c("1","3","4","9","10")
while(! all(is.element(play,numbers))){
play <- fix(play)
}}
change()