C程序设计语言:统计输入的行数、单词数及字符数

白天写不了文章,用来学C了。下面是C程序设计语言里的一个例子,用于统计输入的一些特性。其中简单的循环都把我弄混了,记录一下。

运行程序尝试输入些文字就能清晰看出程序运行的过程了。

结果输出

* if-else语句中有且仅有一条(if或else)被执行。

* windows 终端终止程序用Ctrl+Z,再按Enter。

2013年年末

2013年马上结束了,随手写些心情。要说现时现地的感触,最深的莫过于今年至今无雪。先上一张图,为找回点冬天的状态,也聊作为本文的起陈……

方差分析的多重比较

用到[multcomp] (http://cran.r-project.org/web/packages/multcomp/index.html)包,并非方差分析完全教程

安装&加载

install.packages("multcomp")
library(multcomp)

数据

data(warpbreaks)
str(warpbreaks)
## 'data.frame':	54 obs. of  3 variables:
##  $ breaks : num  26 30 54 25 70 52 51 26 67 18 ...
##  $ wool   : Factor w/ 2 levels "A","B": 1 1 1 1 1 1 1 1 1 1 ...
##  $ tension: Factor w/ 3 levels "L","M","H": 1 1 1 1 1 1 1 1 1 2 ...

单因素方差分析

单因素(tension)三水平(L,M,H)方差分析

数据分布

#### Shapiro-Wilk 正态性检验

with(warpbreaks, tapply(breaks, tension, shapiro.test))
## $L
## 
## 	Shapiro-Wilk normality test
## 
## data:  X[[1L]]
## W = 0.9058, p-value = 0.07265
## 
## 
## $M
## 
## 	Shapiro-Wilk normality test
## 
## data:  X[[2L]]
## W = 0.9428, p-value = 0.3232
## 
## 
## $H
## 
## 	Shapiro-Wilk normality test
## 
## data:  X[[3L]]
## W = 0.9191, p-value = 0.1247

条形图

with(warpbreaks, tapply(breaks, tension, function(x) hist(x, freq = F)))

center center center

方差分析表

对比双因素结果

library(xtable)
amod <- aov(breaks ~ tension, data = warpbreaks)
anov.tb <- xtable(summary(amod), caption = "方差分析表")
print(anov.tb, type = "html", caption.placement = getOption("xtable.caption.placement", 
    "top"))

<TABLE border=1>

方差分析表 Df Sum Sq Mean Sq F value Pr(&gt F) tension 2 2034.26 1017.13 7.21 0.0018 Residuals 51 7198.56 141.15

</TABLE>

多重比较

Tukey’s multiple comparisons tests: The “Honestly Significantly Different” (HSD) test proposed by the statistician John Tukey is based on what is called the “studentized range distribution.”
M与L差异显著,H与L差异极显著,H与M差异不显著

multcomp包

tuk <- glht(amod, linfct = mcp(tension = "Tukey"))
summary(tuk)
## 
## 	 Simultaneous Tests for General Linear Hypotheses
## 
## Multiple Comparisons of Means: Tukey Contrasts
## 
## 
## Fit: aov(formula = breaks ~ tension, data = warpbreaks)
## 
## Linear Hypotheses:
##            Estimate Std. Error t value Pr(>|t|)   
## M - L == 0   -10.00       3.96   -2.53   0.0384 * 
## H - L == 0   -14.72       3.96   -3.72   0.0014 **
## H - M == 0    -4.72       3.96   -1.19   0.4631   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- single-step method)

基础包(stats)

(tuk.base <- TukeyHSD(amod, "tension"))
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = breaks ~ tension, data = warpbreaks)
## 
## $tension
##        diff    lwr     upr  p adj
## M-L -10.000 -19.56 -0.4402 0.0385
## H-L -14.722 -24.28 -5.1624 0.0014
## H-M  -4.722 -14.28  4.8376 0.4631

置信区间图

multcomp包

plot(print(confint(tuk)))

center

基础包(stats)

plot(tuk.base)

center

残差分布

残差 vs 拟合值可以检查残差是否有趋势或残差是否满足一致性;正态Q-Q图检查残差是否满足正态性。

plot(amod, which = 1:2)

center center

双因素方差分析

双因素(tension和wool)多水平(t:L,M,H; w:A,B)方差分析

数据分布

多因素方差分析中,数据要求满足因素水平交叉内的正态性,然而水平交叉内的自由度往往较小,直接的正态性检查不可操作,因此一般由残差的正态性来反映,见残差分布

条形图

with(warpbreaks, for (i in c("L", "H", "M")) {
    hist(warpbreaks[wool == "A" & tension == i, "breaks"], xlab = paste0("breaks A", 
        i), main = NULL)
})

center center center

with(warpbreaks, for (i in c("L", "H", "M")) {
    hist(warpbreaks[wool == "B" & tension == i, "breaks"], xlab = paste0("breaks B", 
        i), main = NULL)
})

center center center

方差分析表

比较单因素,双因素中tension的p值小一点点,wool不显著。

library(xtable)
amod2 <- aov(breaks ~ tension + wool, data = warpbreaks)
anov.tb <- xtable(summary(amod2), caption = "方差分析表")
print(anov.tb, type = "html", caption.placement = getOption("xtable.caption.placement", 
    "top"))

<TABLE border=1>

方差分析表 Df Sum Sq Mean Sq F value Pr(&gt F) tension 2 2034.26 1017.13 7.54 0.0014 wool 1 450.67 450.67 3.34 0.0736 Residuals 50 6747.89 134.96

</TABLE>

多重比较

tension同样是M与L差异显著,H与L差异极显著,H与M差异不显著

multcomp包

tuk2 <- glht(amod2, linfct = mcp(tension = "Tukey"))
summary(tuk2)
## 
## 	 Simultaneous Tests for General Linear Hypotheses
## 
## Multiple Comparisons of Means: Tukey Contrasts
## 
## 
## Fit: aov(formula = breaks ~ tension + wool, data = warpbreaks)
## 
## Linear Hypotheses:
##            Estimate Std. Error t value Pr(>|t|)   
## M - L == 0   -10.00       3.87   -2.58   0.0335 * 
## H - L == 0   -14.72       3.87   -3.80   0.0011 **
## H - M == 0    -4.72       3.87   -1.22   0.4474   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- single-step method)

基础包(stats)

(tuk.base2 <- TukeyHSD(amod2, "tension"))
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = breaks ~ tension + wool, data = warpbreaks)
## 
## $tension
##        diff    lwr     upr  p adj
## M-L -10.000 -19.35 -0.6466 0.0336
## H-L -14.722 -24.08 -5.3688 0.0011
## H-M  -4.722 -14.08  4.6312 0.4474

置信区间图

multcomp包

plot(print(confint(tuk2)))

center

基础包(stats)

plot(tuk.base2)

center

残差分布

残差 vs 拟合值可以检查残差是否有趋势或残差是否满足一致性;正态Q-Q图检查残差是否满足正态性。

plot(amod2, which = 1:2)

center center

Arcgis10.0 安装+破解

(此教程本就是留作自用的,直接从原博客复制,时间上的也不再修改)

本人非常小白,以下都是从网上看来的,自己用了,有时行有时不行(可能是自己某些地方弄错了),安了几台之后终于好一点了,总结一下容易错的地方,留作以后查看。

下载GIS软件包和破解文件

Esri官网上10.1已经可以试用了,但是要破解估计还有一段时间,官网也挂出了sp4的补丁,这里也能下。本人是从9.3转到10.0的,开始下过中文的(起初以为会方便,装了后看着不怎么习惯),后来换回英文(有问题容易搜索),我自己安的可能是sp1。

下载破解包

可以到这里下载。怎么工作的本人不懂,总之就是 覆盖5个文件(另外有一个是最后复制进去bin里),导入两个注册表。

安装license manager

这个在GIS的安装文件里就有,有人提议先装这个再装主程序会比较顺利。装完后停掉许可服务。

安装主程序

这个只需点击安装文件里的项就行,最后可以把一些有需要的也一并安上。

setup-gis

破解

1.复制5个文件到bin文件夹,license manager默认路径安装的就是(C:\Program Files\ArcGIS\License10.0\bin);关键是9.xlic.lic那个文件(也可以是其它名称如service.lic),可以自己用注册机制作,做的时候注意选择正确的feature和version;修改文件里的this-host为你的计算机名(不能是中文);

bin-gis

2.打开bin文件夹里的lmtools.exe进行设置,只要选择license file就行,就是bin里的那个.lic文件(注册机做的);

lmtools-gis

3.开启服务,不行就停掉再开,多试几次就可以了;

lmtools2-gis

4.检查license,出现最后一行就行了,如果不行,自己再做一个.lic;

lmtools3-gis

5.打开ArcGIS administrator设置(确保license manager已关);

administrator1-gis

6.设置下面几个,许可管理器记得改为localhost;

administrator2-gis

7.刷新一下就能看到许可了;

administrator3-gis

8.复制AfCore.dll文件进bin文件夹;导入两个注册表文件

regist-gis

OK!试用,好运……