楼主: dxystata
2244 14

[问答] 结果不同为什么? [推广有奖]

11
dxystata 发表于 2013-4-16 12:26:57
h3327156 发表于 2013-4-16 12:08
"求证1加1" 的看法 与"ntsean" 的观点都是很有启发性,而且很热心。【他举的例子可以参考】

我个人对R不 ...
h3327156兄对R也很兴趣啊!

12
jgchen1966 发表于 2013-5-25 20:06:33
这叫钻牛角尖; 直接定义s<-function(x,y=x) {x<-x+1;y}
a=10,b=12
则  程序是按顺序执而已也
s(a)=11,因为先执行x<-x+1=11,然后执行y<-x=11;最后执行输出y=11,函数中未要求输出x
s(a,b)=12,因为先执行x<x+1=11,然后执行y<-b=12,最后执行输出y=12,函数中未要求输出x
若定义:s<-function(x,y=x) {y;x<x+1,y}
则按序:
s(a)=10,因为先执行y<-x=10,再执行x<-x+1=11,再执行y<-y=10(这特别注意y 前已赋值为10),最后输出y
为10,函数未要求输出x ..
鹑居鷇食,鸟行无彰

13
jgchen1966 发表于 2013-5-25 20:10:15
h3327156 发表于 2013-4-16 12:08
"求证1加1" 的看法 与"ntsean" 的观点都是很有启发性,而且很热心。【他举的例子可以参考】

我个人对R不 ...
其实,电脑还很简单的,它就是按你下达命令的序执行,不会跳的,你觉奇,是你在跳。请见回贴。
鹑居鷇食,鸟行无彰

14
jgchen1966 发表于 2013-5-25 20:10:21
h3327156 发表于 2013-4-16 12:08
"求证1加1" 的看法 与"ntsean" 的观点都是很有启发性,而且很热心。【他举的例子可以参考】

我个人对R不 ...
其实,电脑还很简单的,它就是按你下达命令的序执行,不会跳的,你觉奇,是你在跳。请见回贴。
鹑居鷇食,鸟行无彰

15
jgchen1966 发表于 2013-5-25 20:20:46
若定义:s<-function(x,y=x) {y;x<x+1;y}
则按序:
a=10
b=12
s(a)=10,因为先执行y<-x=10,再执行x<-x+1=11,再执行y<-y=10(这特别注意y 前已赋值为10),最后输出y
为10,函数未要求输出x
s(a,b)=12,因为先执行y<-b=12;再执行x<-x+1=11,再执行y<-y=12(这特别注意y 前已赋值为12),最后输
出y为12,函数未要求输出x
若定义:s<-function(x,y=x) {if (missing(y)) y<-x;x<-x+1;y}
道理也是这样
s(a)=10
s(a,b)=12
鹑居鷇食,鸟行无彰

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-27 06:14