1、赋值符号的陷阱
参考资料:
http://bbs.pinggu.org/thread-1247151-1-1.html
http://yihui.name/cn/2012/09/equal-and-arrow/
在R中,“=”表示传值,“
1.1 关系比较时的陷阱
x=5;x>3; #返回TRUE
x<3; #返回FALSE
x
所以为避免意外发生,应该养成操作符两边加空格的好习惯,否则后果可能会很严重。
1.2 传递参数的误导1
x=0;
mean(x=1:10); #输出5.5,x在这里是一个参数,用完即丢弃
x; #输出0,由于上面的x用完即丢弃,所以不改变原环境里x的值
mean(x
x; #输出1:10,因为上面改变了原环境的x值
个人看法:函数的参数还是不要随意扩大作用域为好
1.3 传递参数的误导2
matrix(1:6,ncol=2); #输出3×2的矩阵
matrix(1:6,ncol
ncol; #输出2,该变量在由于前面使用了“
1.4 传递参数的误导3
> system.time(x
用户 系统 流逝
0 0 0
> system.time(x = runif(100))
错误于system.time(x = runif(1000)) : 参数没有用(x = runif(1000))