when I recalled the switch function, it always gave the first element, no matter what the parameter is.
when organism changed to “yeast”, and called switch function, species supposed to be changed to “Sc”, but it remains it’s original value.
when I recalled the switch function, it always gave the first element, no matter what the parameter is.
when organism changed to “yeast”, and called switch function, species supposed to be changed to “Sc”, but it remains it’s original value.
写给某个小朋友看,希望我的一点看法,能有用。欢迎讨论。。
为什么会有编程语言?
计算机史前有过不同的理论,但最后活下来的,只有图灵机一个模型。现在的计算机,都是基于此发展的,跟二战前那个三层楼高的计算机,没啥区别,那个机器一堆开关,人工操作。CPU做的计算也是开关的逻辑计算。所以计算机的语言是01二进制,一开一关,告诉计算机要不要发出电子脉冲。写一个程序全是01数字组成的,对于人来说是mission impossible!所以必须要有编程语言。编程语言就是为了抽象计算机机械原理的一面。
LOAD A ADD B STORE C
实现两个数的加和,这是人类可读的语言,而不是一串01所组成的不可读的机器语言。
抽象是最关键的。所有的编程语言都是为了实现抽象。越是高级的语言,抽象度越高,抽象度越高越好!
> source("code.R") #载入写好的代码
> package.skeleton(name="pkgname", list=c("function_name_list"))
# 生成R源码包的目录结构
到man目录下改*.Rd文档。latex格式。这是包和函数的帮助文档。
如果需要vignette文档的话。在包目录下,新建inst/doc,在里面写pkgname.Rnw文档。基本上是latex格式,不过允许你插入R代码。make的时候,会先跑代码。再自动转换成latex,再编译成pdf。
$ R CMD check pkgname
# 检验代码和文档。这个很重要。通常一些小问题都能在这一步发现。
$ R CMD build pkgname
# 打包,源码包格式
$ R CMD build --binary pkgname
#编译后打包,二进制格式。
翻看了以前写的使用Newton-Raphson Method求一个数的开方,想到其实也可以用中值定理来实现。 中值定理:f(x)是一个连续性的函数,在[u,v]区间内,当c的值位于f(u)和f(v)之间时,至少存在一个点,满足f(x) = c 当f(u)和f(v)一正一负时,那么在[u,v]之间至少有一个根的存在,这个定理本来就是拿来证明根的存在的,但是其实也可以用来求解根。
今天看了一篇文章Can a biologist fix a radio?, 作者讲了个悖论,越多事实的积累,对于所研究的process理解的越少。
这确实是现在的现实。许多的科研结果,其实就是便这个本来很混乱的世界更加混乱。文中还讲到了科研的淘金热。昨天我正好看到了science上的文章说impact factor fever。当科研成为一种职业,真正对科学有热情的scientist并不多,更多的人仅仅是为了拿grant,要拿grant,就要发高分的文章,哪里好发文章,那里就有一堆人在抢。顺带一下,大家都说生物是火坑,其实学科在发展的初期,对于科研人员来说还是有利的。如果说工作的话,确实是火坑,其实生物是个暴利行业,如果你身在火海中,那是因为你处于生物链的最底层。