不知道空窗期这个词是怎么来的,按照合理的推论应该是来自于西方,泊来之词。

空窗期顾名思义就是没人来爬自己的窗户,引申出来就是没人来找自己约会。这个符合西方的建筑特点,西方的建筑是立体的,体现出来就是窗户多。而爬窗约会也多次出现于西方的文学和影视作品中。《红与黑》中就有于连拿着个梯子,爬窗去偷情的描写。

而我们中国人的建筑是平面型的,体现在墙多,所以说,中国人的单身阶段应该称之为空墙期,意谓没人来翻墙。

苏轼曾做过一首词,名谓《蝶恋花》。词中有云:

花褪残红青杏小。
燕子飞时,绿水人家绕。
枝上柳绵吹又少。
天涯何处无芳草。

墙里秋千墙外道。
墙外行人,墙里佳人笑。
笑渐不闻声渐悄。
多情却被无情恼。

Continue reading

机房放着台机架机,闲着也是耗电,平时偶尔用putty登上去,没有图形界面还是有些不方便。

搜了一下,发现好几个软件可做这样的事,Xming是开源的,所以选择使用Xming+putty来远程连linux的桌面。

试用了一下,果然不错。

需要修改/etc/ssh/sshd_config,添加:

X11Forwrding yes

需要配置一下PuTTY,Connection-SSh-X11中选中Enable X11forwarding 其中X display location里填入localhost:0

运行Xming,再用putty连到服务器上,运行程序,就OK了。就好像windows下的本地程序一般。整合性很好。

Continue reading

[bootstrap](http://en.wikipedia.org/wiki/Bootstrapping_(statistics))是对观测数据集进行有放回(replacement)的随机抽样,以评估总体的各项统计指标。可以用于假设检验、参数估计。好处是并不要求大样本,也不要求正态数据,并且对于不同的统计指标使用的是同样的计算方法。结果也更为可靠,坏处是计算量大。

统计推断(statistical inference)是基于样本统计值的抽样分布来计算的,抽样分布需要从总体中许多的样本来计算,在只有一个样本的情况下,bootstrap对这一随机样本进行有放回的重复抽样,每一个重抽样本与原始随机样本一样大,每次计算相应的抽样的统计值,重复了N次之后,就可以计算统计值的bootstrap分布。

下面做一个小小的试验:

a <- c(seq(1:10), rnorm(50))  

#创建一个样本,60个数据,非正态分布的,如下图

Continue reading

泰勒公式学过微积分都应该知道,可以翻wiki复习一下,https://zh.wikipedia.org/wiki/泰勒公式.

用R简单实现一下:

 efv <- function(f, value, variable="x", a=0, eps=0.001) {
     #estimate function value using Taylor theorem
     assign(eval(variable), a)
     fv.old <- eval(f)
     k <- 1     
     repeat {
         df <- D(f, variable)
         if (df == 0)
             break
         fv.new <- fv.old + eval(df)*(value-a)^k/factorial(k)
         if (fv.new - fv.old < eps)
             break
         fv.old <- fv.new
         f <- df
         k <- k+1
     }
     return (fv.new)
 }

Continue reading

写给某个小朋友看,希望我的一点看法,能有用。欢迎讨论。。

为什么会有编程语言?

计算机史前有过不同的理论,但最后活下来的,只有图灵机一个模型。现在的计算机,都是基于此发展的,跟二战前那个三层楼高的计算机,没啥区别,那个机器一堆开关,人工操作。CPU做的计算也是开关的逻辑计算。所以计算机的语言是01二进制,一开一关,告诉计算机要不要发出电子脉冲。写一个程序全是01数字组成的,对于人来说是mission impossible!所以必须要有编程语言。编程语言就是为了抽象计算机机械原理的一面。

LOAD A ADD B STORE C

实现两个数的加和,这是人类可读的语言,而不是一串01所组成的不可读的机器语言。

抽象是最关键的。所有的编程语言都是为了实现抽象。越是高级的语言,抽象度越高,抽象度越高越好!

Continue reading

创建R包

> 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
#编译后打包,二进制格式。

Continue reading

翻看了以前写的使用Newton-Raphson Method求一个数的开方,想到其实也可以用中值定理来实现。 中值定理:f(x)是一个连续性的函数,在[u,v]区间内,当c的值位于f(u)和f(v)之间时,至少存在一个点,满足f(x) = c 当f(u)和f(v)一正一负时,那么在[u,v]之间至少有一个根的存在,这个定理本来就是拿来证明根的存在的,但是其实也可以用来求解根。

Continue reading

Author's picture

Guangchuang Yu

a senior-in-age-but-not-senior-in-knowledge bioinformatician

Postdoc researcher

Hong Kong