方差分析,是统计中的基础分析方法,也是我们在分析数据时经常使用的方法。下面我总结一下R语言如何对常用的方差分析进行操作。

1. 方差分析的假定

上面这个思维导图,也可以看出,方差分析有三大假定:正态,独立和齐次,如果不满足,可以使用广义线性模型或者混合线性模型,或者广义线性混合模型去分析。

「本次我们的主题有:」

2. 数据来源

这里,我们使用的数据来源于R包agridat,它是讲农业相关的论文,书籍中相关的数据收集在了一起,更加符合我们的背景。

包的下载地址:https://cran.r-project.org/web/packages/agridat/index.html

「包的介绍」

「agridat: Agricultural Datasets」 Datasets from books, papers, and websites related to agriculture. Example graphics and analyses are included. Data come from small-plot trials, multi-environment trials, uniformity trials, yield monitors, and more.

「包的安装方式:」

("agridat")

3. 单因素方差分析

❝ 比如一个处理有A,B,C三个水平,观测值y,想看一下这个处理是否达到显著性水平,这就可以用到方差分析了。

「数据描述:」

❝ Corn yield and nitrogen fertilizer treatment with field characteristics for the Las Rosas farm, Rio Cuarto, Cordoba, Argentina.

data()
dat <-
str(dat)

「数据结构:」

> str(dat)
'': 3443 obs. of  9 variables:$ year : int  1999 1999 1999 1999 1999 1999 1999 1999 1999 1999 ...$ lat  : num  -33.1 -33.1 -33.1 -33.1 -33.1 ...$ long : num  -63.8 -63.8 -63.8 -63.8 -63.8 ...$ yield: num  72.1 73.8 77.2 76.3 75.5 ...$ nitro: num  132 132 132 132 132 ...$ topo : Factor w/ 4 levels "E","HT","LO",..: 4 4 4 4 4 4 4 4 4 4 ...$ bv   : num  163 170 168 177 171 ...$ rep  : Factor w/ 3 levels "R1","R2","R3": 1 1 1 1 1 1 1 1 1 1 ...$ nf   : Factor w/ 6 levels "N0","N1","N2",..: 6 6 6 6 6 6 6 6 6 6 ...

这里数据有很多列,但是我们要演示单因素方差分析,这里的因素为nf,自变量(Y变量)是yield,想要看一下nf的不同水平是否达到显著性差异。

「建模:」 Y变量:yield 因子:nf

「R中的建模代码:」

 m1 = aov(yield ~ nf, data=dat)

  • m1为模型保存的名称
  • aov为R中的方差分析代码
  • yield为数据中的Y变量,这里是yield
  • ~,波浪号前面为Y变量,后面为X变量
  • nf为分析的因子变量
  • dat为数据

「结果:」

> m1 = aov(yield ~ nf, data=dat)
> summary(m1)Df  Sum Sq Mean Sq F value   Pr(>F)
nf             5   23987    4797    12.4 6.08e-12 ***
Residuals   3437 1330110     387
---
Signif. codes:  0 ‘***’  ‘**’  ‘*’  ‘.’  ‘ ’ 1

结果可以看出,nf之间达到极显著水平,可以进行多重比较。

「方差分析的显著性和多重比较有何关系???」

❝ 方差分析,一般会得到显著性(即P值小于,说明显著,小于,说明极显著,大于,说明不显著),显著的意思是因素之间至少有一对水平达到显著性差异,具体是那一对呢?有几对呢?这就需要用到多重比较。所以,多重比较是在方差分析达到显著性之后进行的,只有显著了(P值小于)才有能进行多重比较。多重比较的方法有很多,比如LSD,Tukey,Bonferroni,Holm等等,我们后面系统的介绍。

4. 单因素随机区组

这里区组的设置,可以控制一些环境误差。

「数据描述:」

❝ Switchback trial in dairy with three treatments

data()
dat <-
str(dat)

「数据结构:」

> str(dat)
'': 36 obs. of  5 variables:$ cow   : Factor w/ 12 levels "C1","C10","C11",..: 1 5 6 7 8 9 10 11 12 2 ...$ trt   : Factor w/ 3 levels "T1","T2","T3": 1 2 3 1 2 3 1 2 3 1 ...$ period: Factor w/ 3 levels "P1","P2","P3": 1 1 1 1 1 1 1 1 1 1 ...$ yield : num  34.6 22.8 32.9 48.9 21.8 25.4 30.4 35.2 30.8 38.7 ...$ block : Factor w/ 3 levels "B1","B2","B3": 1 1 1 1 1 1 2 2 2 3 ...

「建模:」 Y变量:yield 因子:trt 区组:block

「R中的建模代码:」

m2 = aov(yield ~ block +trt, data=dat)
summary(m2)

「结果:」

> summary(m2)Df Sum Sq Mean Sq F value Pr(>F)
block        2   30.9   15.46   0.306 0.7385
trt          2  273.8  136.88   2.709 0.0823 .
Residuals   31 1566.1   50.52
---
Signif. codes:  0 ‘***’  ‘**’  ‘*’  ‘.’  ‘ ’ 1

结果可以看出,trt之间达到没有极显著水平。

5. 二因素方差分析(无交互)

这里区组的设置,可以控制一些环境误差。

无交互的意思是,二因素之间不考虑互作。

「数据描述:」

❝ Switchback trial in dairy with three treatments

data()
dat <-
str(dat)

「数据结构:」

> str(dat)
'': 36 obs. of  5 variables:$ cow   : Factor w/ 12 levels "C1","C10","C11",..: 1 5 6 7 8 9 10 11 12 2 ...$ trt   : Factor w/ 3 levels "T1","T2","T3": 1 2 3 1 2 3 1 2 3 1 ...$ period: Factor w/ 3 levels "P1","P2","P3": 1 1 1 1 1 1 1 1 1 1 ...$ yield : num  34.6 22.8 32.9 48.9 21.8 25.4 30.4 35.2 30.8 38.7 ...$ block : Factor w/ 3 levels "B1","B2","B3": 1 1 1 1 1 1 2 2 2 3 ...

「建模:」

  • Y变量:yield
  • 因子1:trt
  • 因子2:period
  • 区组:block

「R中的建模代码:」

m3 = aov(yield ~ block +trt +period, data=dat)
summary(m3)

「结果:」

> summary(m3)Df Sum Sq Mean Sq F value Pr(>F)
block        2   30.9   15.46   0.308 0.7374
trt          2  273.8  136.88   2.725 0.0823 .
period       2  109.5   54.74   1.090 0.3497
Residuals   29 1456.6   50.23
---
Signif. codes:  0 ‘***’  ‘**’  ‘*’  ‘.’  ‘ ’ 1

结果可以看出,trt之间达到没有极显著水平,period之间没有达到显著性水平。

6. 二因素方差分析(有交互)

这里区组的设置,可以控制一些环境误差。

交互的意思是,二因素之间考虑互作。

「数据描述:」

❝ Switchback trial in dairy with three treatments

data()
dat <-
str(dat)

「数据结构:」

> str(dat)
'': 36 obs. of  5 variables:$ cow   : Factor w/ 12 levels "C1","C10","C11",..: 1 5 6 7 8 9 10 11 12 2 ...$ trt   : Factor w/ 3 levels "T1","T2","T3": 1 2 3 1 2 3 1 2 3 1 ...$ period: Factor w/ 3 levels "P1","P2","P3": 1 1 1 1 1 1 1 1 1 1 ...$ yield : num  34.6 22.8 32.9 48.9 21.8 25.4 30.4 35.2 30.8 38.7 ...$ block : Factor w/ 3 levels "B1","B2","B3": 1 1 1 1 1 1 2 2 2 3 ...

「建模:」

  • Y变量:yield
  • 因子1:trt
  • 因子2:period
  • 区组:block

「R中的建模代码:」

m4 = aov(yield ~ block +trt*period, data=dat)
summary(m4)

注意,这里的trt*period是R中公式的简写,表示trt + period + trt:period,其中trt:period表示互作效应。

「结果:」

> summary(m4)Df Sum Sq Mean Sq F value Pr(>F)
block        2   30.9   15.46   0.339 0.7160
trt          2  273.8  136.88   2.997 0.0681 .
period       2  109.5   54.74   1.199 0.3183
trt:period   4  315.0   78.75   1.725 761
Residuals   25 1141.6   45.66
---
Signif. codes:  0 ‘***’  ‘**’  ‘*’  ‘.’  ‘ ’ 1

结果可以看出,trt之间达到没有极显著水平,period之间没有达到显著性水平,trt和period交互没有达到显著水平。

7. 多因素方差分析

这里区组的设置,可以控制一些环境误差。

多于两个因素的方差分析

「数据描述:」

❝ Switchback trial in dairy with three treatments

data()
dat <-
str(dat)

「数据结构:」

> str(dat)
'': 36 obs. of  5 variables:$ cow   : Factor w/ 12 levels "C1","C10","C11",..: 1 5 6 7 8 9 10 11 12 2 ...$ trt   : Factor w/ 3 levels "T1","T2","T3": 1 2 3 1 2 3 1 2 3 1 ...$ period: Factor w/ 3 levels "P1","P2","P3": 1 1 1 1 1 1 1 1 1 1 ...$ yield : num  34.6 22.8 32.9 48.9 21.8 25.4 30.4 35.2 30.8 38.7 ...$ block : Factor w/ 3 levels "B1","B2","B3": 1 1 1 1 1 1 2 2 2 3 ...

「建模:」

  • Y变量:yield
  • 因子1:trt
  • 因子2:period
  • 因子3:cow
  • 区组:block

「R中的建模代码:」

m5 = aov(yield ~ block + trt*period + cow, data=dat)
summary(m5)

注意,这里的trt*period是R中公式的简写,表示trt + period + trt:period,其中trt:period表示互作效应。

「结果:」

> summary(m5)Df Sum Sq Mean Sq F value   Pr(>F)
block        2   30.9   15.46  11.155 0.000926 ***
trt          2  273.8  136.88  98.739 9.96e-10 ***
period       2  109.5   54.74  39.486 6.49e-07 ***
cow          9 1428.8  158.76 114.523 8.29e-13 ***
trt:period   4    5.6    1.41   1.015 0.429042
Residuals   16   22.2    1.39
---
Signif. codes:  0 ‘***’  ‘**’  ‘*’  ‘.’  ‘ ’ 1

结果可以看出,trt之间达到极显著水平,period之间达到显著性水平,trt和period交互没有达到显著水平,cow达到极显著水平。

8. 裂区试验方差分析

裂区试验,包括主区(wplot)和裂区(splot),其中裂区是镶嵌在主区中的,主区和裂区的残差不一样,在模型中需要特殊定义。

「数据描述:」

❝ Strip-split plot of barley with fertilizer, calcium, and soil factors.

data()
dat <-
str(dat)

「数据结构:」

> str(dat)
'': 96 obs. of  5 variables:$ rep    : Factor w/ 4 levels "R1","R2","R3",..: 1 1 1 1 1 1 1 1 1 1 ...$ soil   : Factor w/ 3 levels "S1","S2","S3": 1 1 1 1 1 1 1 1 2 2 ...$ fert   : Factor w/ 4 levels "F0","F1","F2",..: 1 1 2 2 3 3 4 4 1 1 ...$ calcium: Factor w/ 2 levels "C0","C1": 1 2 1 2 1 2 1 2 1 2 ...$ yield  : num  4.91 4.63 4.76 5.04 5.38 6.21 5.6 5.08 4.94 3.98 ...

「建模:」

  • Y变量:yield
  • 主区:fert
  • 裂区:soil
  • 区组:brep

「R中的建模代码:」

m6 = aov(yield ~ rep + soil*fert + Error(rep/fert),data=dat)
summary(m6)

注意,这里的Error(rep/fert)是R中公式的定义残差,主要用于不同因素使用不同残差的情况,这里fert是主区。

「结果:」

> summary(m6)Error: repDf Sum Sq Mean Sq
rep  3   6.28   2.093Error: rep:fertDf Sum Sq Mean Sq F value Pr(>F)
fert       3  7.221  2.4071   3.562 0.0604 .
Residuals  9  6.082  0.6758
---
Signif. codes:  0 ‘***’  ‘**’  ‘*’  ‘.’  ‘ ’ 1Error: WithinDf Sum Sq Mean Sq F value  Pr(>F)
soil       2  1.927  0.9633   7.155 46 **
soil:fert  6  0.688  147   0.852 0.53433
Residuals 72  9.693  346
---
Signif. codes:  0 ‘***’  ‘**’  ‘*’  ‘.’  ‘ ’ 1

结果可以看出,soil达到极显著,fert不显著,soil和fert的互作不显著。

9. 正态性检验

方差分析中,结果是否可信,在于数据是否满足假定条件。方差分析的假定包括数据正态性数据的方差齐次性数据的独立性,其中可以检验的假定有:

这里,我们介绍如何对数据的正态性进行检验。

可以使用球性检验(Shapiro-Wilk)检验数据的正态性,也可以用qqplot查看残差的图,判断数据的正态性,也可以对数据做直方图,查看数据的正态性。

「数据描述:」

❝ A classical N, P, K (nitrogen, phosphate, potassium) factorial experiment on the growth of peas conducted on 6 blocks. Each half of a fractional factorial design confounding the NPK interaction was used on 3 of the plots.

data(npk)
dat <- npk
str(dat)

「数据结构:」

> str(dat)
'': 24 obs. of  5 variables:$ block: Factor w/ 6 levels "1","2","3","4",..: 1 1 1 1 2 2 2 2 3 3 ...$ N    : Factor w/ 2 levels "0","1": 1 2 1 2 2 2 1 1 1 2 ...$ P    : Factor w/ 2 levels "0","1": 2 2 1 1 1 2 1 2 2 2 ...$ K    : Factor w/ 2 levels "0","1": 2 1 1 2 1 2 2 1 1 2 ...$ yield: num  49.5 62.8 46.8 57 59.8 58.5 55.5 56 62.8 55.8 ...

一般分析时,我们仅对Y变量进行正态性检验,如果是单因素或者多因素,也可以根据因素分组进行正态性检验,数据量大时,对于稍微偏态的数据,即使不太符合正态分布,也不影响结论。

这里,我们对yield进行正态性检验

「作直方图」

可以看到,yield大体符合正态分布。

「做qq图」

使用car软件包中的qqPlot函数。

library(car)
qqPlot(dat$yield)

可以看到,数据基本落在置信区间里面,数据符合正态分布。

「使用Shapiro-Wilk」检验数据正态分布

> (dat$yield)Shapiro-Wilk normality testdata:  dat$yield
W = 0.97884, p-value =

可以看到,P值为,数据符合正态分布,与上图显示的结果一致。

10. 齐次性检验

方差分析中,我们对结果是否自信,在于数据是否满足假定条件,方差分析的假定条件包括数据正态性数据的方差齐次性数据的独立性,其中可以检验的假定有:

这里,我们介绍如何对数据的齐次性进行检验。齐次性检验,是检验不同样本的总体方差是否相同,是根据特定的模型,需要考虑不同的因子放到模型中,不能单独对某一列变量进行齐次性检验。

「齐次性检验:」

「数据描述:」

❝ A classical N, P, K (nitrogen, phosphate, potassium) factorial experiment on the growth of peas conducted on 6 blocks. Each half of a fractional factorial design confounding the NPK interaction was used on 3 of the plots.

data(npk)
dat <- npk
str(dat)

「数据结构:」

> str(dat)
'': 24 obs. of  5 variables:$ block: Factor w/ 6 levels "1","2","3","4",..: 1 1 1 1 2 2 2 2 3 3 ...$ N    : Factor w/ 2 levels "0","1": 1 2 1 2 2 2 1 1 1 2 ...$ P    : Factor w/ 2 levels "0","1": 2 2 1 1 1 2 1 2 2 2 ...$ K    : Factor w/ 2 levels "0","1": 2 1 1 2 1 2 2 1 1 2 ...$ yield: num  49.5 62.8 46.8 57 59.8 58.5 55.5 56 62.8 55.8 ...

比如上面数据中,相对N进行单因素方差分析,查看不同N的水平是否满足方差齐次性,可以这样操作:

「Bartlett检验」

Bartlett检验可以比较多个总体的方差

(yield ~ N,data=dat)

结果:

> (yield ~ N,data=dat)Bartlett test of homogeneity of variancesdata:  yield by N
Bartlett's K-squared = 7652, df = 1, p-value = 0.8102

结果可以看出,不同的N之间,方差满足齐次性要求。

「Levene检验」

Bartlett检验对数据的正态性非常敏感,而Levene检验是一种非参数检验方法,使用范围更广。

library(car)
leveneTest(yield ~ N, data=dat)

结果:

> leveneTest(yield ~ N, data=dat)
Levene's Test for Homogeneity of Variance (center = median)Df F value Pr(>F)
group  1  0.0054 22

结果可以看出,P值为,大于,说明数据符合方差齐次性。

11. 多重比较

这里,我们介绍一下方差分析中的多重比较方法。

「agricolae包」

❝ This package contains functionality for the Statistical Analysis of experimental designs applied specially for field experiments in agriculture and plant breeding.

「多重比较方法:」

  • LSD
  • scheffe
  • HSD(Tukey)
  • SNK
  • Duncan

「数据描述:」

❝ A classical N, P, K (nitrogen, phosphate, potassium) factorial experiment on the growth of peas conducted on 6 blocks. Each half of a fractional factorial design confounding the NPK interaction was used on 3 of the plots.

data(npk)
dat <- npk
str(dat)

「数据结构:」

> str(dat)
'': 24 obs. of  5 variables:$ block: Factor w/ 6 levels "1","2","3","4",..: 1 1 1 1 2 2 2 2 3 3 ...$ N    : Factor w/ 2 levels "0","1": 1 2 1 2 2 2 1 1 1 2 ...$ P    : Factor w/ 2 levels "0","1": 2 2 1 1 1 2 1 2 2 2 ...$ K    : Factor w/ 2 levels "0","1": 2 1 1 2 1 2 2 1 1 2 ...$ yield: num  49.5 62.8 46.8 57 59.8 58.5 55.5 56 62.8 55.8 ...

「方差分析」 这里对N进行单因素方差分析,block为区组:

> m9 = aov(yield ~ block + N, data=dat)
> summary(m9)Df Sum Sq Mean Sq F value Pr(>F)
block        5  343.3   68.66   3.395 0.0262 *
N            1  189.3  189.28   9.360 0.0071 **
Residuals   17  343.8   20.22
---
Signif. codes:  0 ‘***’  ‘**’  ‘*’  ‘.’  ‘ ’ 1

结果可以看到,N因素达到极显著水平

11.1 LSD多重比较

❝ Multiple comparisons of treatments by means of LSD and a grouping of treatments. The level by alpha default is . Returns p-values adjusted using one of several methods

# LSD
re1 = (m9,"N")
re1$groups

结果:

> re1 = (m9,"N")
> re1$groupsyield groups
1 57.68333      a
0 52.06667      b

11.2 scheffe多重比较

❝ Scheffe 1959, method is very general in that all possible contrasts can be tested for significance and confidence intervals can be constructed for the corresponding linear. The test is conservative.

代码:

结果

> ((m9,"N"))
$statisticsMSerror Df        F   Mean       CV  Scheffe CriticalDifference20.22284 17 4.451322 54.875 8.194955 2.109816           3.873379$parameterstest name.t ntr alphaScheffe      N   2  $meansyield      std  r  Min  Max   Q25   Q50    Q75
0 52.06667 5.377957 12 44.2 62.8 48.30 52.35 55.625
1 57.68333 5.791347 12 48.8 69.5 54.85 57.85 60.350$comparison
NULL$groupsyield groups
1 57.68333      a
0 52.06667      b

11.3 Tukey多重比较

❝ It makes multiple comparisons of treatments by means of Tukey. The level by alpha default is .

代码:

# Turkey
((m9,"N"))

结果

> ((m9,"N"))
$statisticsMSerror Df   Mean       CV      MSD20.22284 17 54.875 8.194955 3.873379$parameterstest name.t ntr StudentizedRange alphaTukey      N   2          2.98373  $meansyield      std  r  Min  Max   Q25   Q50    Q75
0 52.06667 5.377957 12 44.2 62.8 48.30 52.35 55.625
1 57.68333 5.791347 12 48.8 69.5 54.85 57.85 60.350$comparison
NULL$groupsyield groups
1 57.68333      a
0 52.06667      b

11.4 SNK多重比较

❝ SNK is derived from Tukey, but it is less conservative (finds more differences). Tukey controls the error for all comparisons, where SNK only controls for comparisons under consideration. The level by alpha default is .

代码:

结果

> ((m9,"N"))
$statisticsMSerror Df   Mean       CV      MSD20.22284 17 54.875 8.194955 3.873379$parameterstest name.t ntr StudentizedRange alphaTukey      N   2          2.98373  $meansyield      std  r  Min  Max   Q25   Q50    Q75
0 52.06667 5.377957 12 44.2 62.8 48.30 52.35 55.625
1 57.68333 5.791347 12 48.8 69.5 54.85 57.85 60.350$comparison
NULL$groupsyield groups
1 57.68333      a
0 52.06667      b

11.5 Duncan多重比较

❝ This test is adapted from the Newman-Keuls method. Duncan's test does not control family wise error rate at the specified alpha level. It has more power than the other post tests, but only because it doesn't control the error rate properly. The Experimentwise Error Rate at: 1-(1-alpha)^(a-1); where "a" is the number of means and is the Per-Comparison Error Rate. Duncan's procedure is only very slightly more conservative than LSD. The level by alpha default is .

代码:

# Duncan
((m9,"N"))

结果

> ((m9,"N"))
$statisticsMSerror Df   Mean       CV20.22284 17 54.875 8.194955$parameterstest name.t ntr alphaDuncan      N   2  $duncanTable CriticalRange
2 2.98373      3.873379$meansyield      std  r  Min  Max   Q25   Q50    Q75
0 52.06667 5.377957 12 44.2 62.8 48.30 52.35 55.625
1 57.68333 5.791347 12 48.8 69.5 54.85 57.85 60.350$comparison
NULL$groupsyield groups
1 57.68333      a
0 52.06667      b

12. 获得所有代码及注释脚本

公众号回复(R-breeding):R语言方差分析。

R语言中dim函数_R语言中的方差分析方法汇总相关推荐

  1. R语言中dim函数_R语言--向量化计算(apply族函数)

    R语言最优秀的是它的向量化编程,这其中apply族函数扮演了非常重要的角色.apply族函数是由apply.sapply.lapply.mapply.tapply等函数组成的.熟练使用apply族函数 ...

  2. R语言中dim函数_R语言 常见函数知识点梳理与解析 | 精选分析

    目 录 1.str() 显示数据集和变量类型,并简要展示数据集情况 2.subset()  取子集 3.which.min(), which.max()和which() 4.pmin( )/ pmax ...

  3. r语言算巢式设计方差分析_R语言中的方差分析方法汇总

    方差分析,是统计中的基础分析方法,也是我们在分析数据时经常使用的方法.下面我总结一下R语言如何对常用的方差分析进行操作. 1. 方差分析的假定 上面这个思维导图,也可以看出,方差分析有三大假定:正态, ...

  4. r语言中paste函数_R中的paste()函数-简要指南

    r语言中paste函数 Using the paste() function in R will be straight and simple. In this tutorial let's see ...

  5. r语言中mpg数据_R语言数据筛选整理包dplyr

    dplyr软件包是R中功能最强大,最受欢迎的软件包之一.该软件包由最受欢迎的R程序员Hadley Wickham编写,他编写了许多有用的R软件包,如ggplot2,tidyr等.本文包括一些示例和如何 ...

  6. r语言中mpg数据_R语言数据实战 | 统计检验

    原标题:R语言数据实战 | 统计检验 1.单个总体均值的t检验 1. 什么是检验? 检验(test)是统计学中最重要的概念之一,在科学研究和实际业务中都有着广泛的应用.用一句话来概括就是:人们希望通过 ...

  7. r语言中mpg数据_R语言常用的数据处理的包(1)

    在R中有很多的内置函数,比如transform().rbind().cbind()等函数,这些函数我们可以直接使用,除此之外,还有常见的几种包在处理数据的时候非常好用. dplyr包 dplyr包是H ...

  8. r语言中mpg数据_R语言数据分析系列之五

    R语言数据分析系列之五 本节来讨论一下R语言的基本图形展示,先来看一张效果图吧. 这是一张用R语言生成的,虚拟的wordcloud云图,详细实现细节请參见我的github项目:https://gith ...

  9. c语言中bluetooth函数,C语言中的低功耗蓝牙-使用Bluez创建GATT服务器

    小编典典 我得到了运行BlueZ 5.31的示例GATT服务器(截至本文的最新信息): 我的环境: 作为来宾OS(版本14.04 32位操作系统)的 Vagrant Virtual Box Ubunt ...

最新文章

  1. 【.NET基础】--委托、事件、线程(2)
  2. 如何测试一个电梯,测试方案及测试用例
  3. Bootstrap3 排版-改变大小写
  4. JAVA中使用bos做视频上传_JAVA语言之搭建物流BOS项目骨架
  5. php 类的注释标准,php标准注释
  6. linux 进程suricata,开源USM之IDS suricata
  7. ElasticSearch索引的基本操作命令
  8. .net知识和学习方法系列(四)继承中方法的隐藏和重写
  9. 一次性送出25本北大出版社AI类当当最畅销的25本书!包括~机器学习、深度学习实战、数学基础等...
  10. MySQL引擎详解(一)——引擎基本原理和操作
  11. HackFifteen 移除背景以提升Activity启动速度
  12. mysql中kill掉所有锁表的进程
  13. 在X79 LGA2011上改造安装利民AX120R LGA1200风扇
  14. 决策树算法与应用 学习笔记
  15. Suppressing Uncertainties for Large-Scale Facial Expression Recognition(2020CVPR)
  16. 弗吉尼亚理工大学计算机科学,美国弗吉尼亚理工大学计算机科学本科.pdf
  17. 2022中央财经大学《901C语言程序设计》考研编程题回忆版
  18. 剑指offe-机器人的运动范围
  19. 数学分析_Tom Apostol_定理7.48:黎曼可积的充要条件
  20. PS 切片工具的使用

热门文章

  1. E. The Humanoid Codeforces Round #834 (Div. 3)(暴力dfs?)
  2. 百度云盘archlinux manjaro直接安装
  3. backupexec mysql_backup-mysql.sh
  4. HTTPDNS基礎知識
  5. openwrt winshak 抓取无线beacon帧
  6. 微信公众平台开发教程第2篇-----微信开发者接入
  7. JavaScript创始人Brendan Eich访谈录
  8. Ubuntu 各版本代号对照表
  9. 光纤交换机 序列号_IBM B系列光纤交换机B24默认激活和license以及如何导入license...
  10. 行为型模式——备忘录模式(Memento Pattern)