R语言factor最简单的理解

Python014

R语言factor最简单的理解,第1张

最近正在学习R语言,碰到了因子factor,自己很不理解,网上找了很多的资料,可是感觉都说的很难,自己不是很理解,所以自己决定写一篇博客来帮助和自己一样有困惑的小伙伴。

首先,因子是离散的,它不是连续的,它只是一个标签。举个例子:

下面我们主要介绍一个关于因子的关键函数factor()及他的一些参数!

这里主要说三个参数

x,我们主要传入的是一个向量,就像上面的例子一样。

为了研究第二、三个参数我们做如下test:

注意到,我们的元素是有重复的,细心的你,发现Levels: 1 2 3保存的是去重的元素,相当于python里面的集合,为什么会这样,或者说这样有什么好处,最大的好处就是节约存储空间,还有就是当数据很多且有很多重复的时候,你可以很直观的看到他真实的数据!

注意,我前面说了,factor的levels只是看不重复的的值,所以这些下该明白了吧。因为V里面不重复的就3个。

然后就会用我们实际需要的levels来一个一个替换,在实践中也是有这种需求的。

labels也可以实现,类比levels即可。传入的依然是c()向量。

第一,理解代码的含义。

第二,执行代码。

这里是R进行数据分析的一些代码,希望对你有用。

1.1导入数据

install.packages('xslx')

library(xlsx)

Sys.setlocale("LC_ALL", "zh_cn.utf-8")

a=read.xlsx2('d:/1.xlsx',1,header=F)

head(a)显示前六行

class(a$y)/str(a)查看列/全集数据类型

a$y=as.numeric(a$y)转换数据类型

1.2方差分析(F test)

with(a,tapply(liqi,tan,shapiro.test))正态性检验

library(car)leveneTest(liqi~tan,a)方差齐性检验

q=aov(liqi~tan*chong,a)方差分析(正态型)

summary(q)

TukeyHSD(q)多重比较

1.3卡方测验(Pearson Chisq)

a1=summarySE(a,measurevar='y', groupvars=c('x1','x2'))卡方检验(逻辑型/计数型)

aa=a1$y

aaa=matrix(a2,ncol=2)

aaa= as.table(rbind(c(56,44), c(36,64), c(48,52),c(58,42)))

dimnames(aaa)= list(group=c("不添加抗性","不添加敏感","添加抗性","添加敏感"),effect=c("存活","死亡"))

aaa=xtabs(data=a,~x+y)

chisq.test(a)误差分析(卡方测验,Pearson法)

install.packages("rcompanion")

library(rcompanion)

pairwiseNominalIndependence(a)多重比较

1.4线性模型及其误差分析(Wald Chisq)

q=lm(data=a,y~x1*x2)一般线性模型(正态性)

summary(q)

q=glm(data=a,y~x1*x2,family = gaussian(link='identity'))广义线性模型(正态性)

summary(q)

q=glm(data=a,y~x1*x2,family = binomial(link='logit'))广义线性模型(逻辑型,二项分布)

summary(q)

q=glm(data=a,y~x1*x2,family = poisson(link='log'))广义线性模型(计数型,泊松分布)

summary(q)

install.packages('lmerTest')一般线性混合效应模型(正态性)

library(lmerTest)

install packages(‘lme4’)

library(lme4)

q=lmer(data=a,y~x1*(1|x2))

q=lmer(data=a,y~x1*(1|x2),family = gaussian(link='identity'))广义线性混合效应模型(正态性)

q=glmer(data=a,y~x1*(1|x2),family = binomial(link='logit'))广义线性混合效应模型(逻辑型,二项分布)

q=glmer(data=a,y~x1*(1|x2),family = poisson(link='log'))广义线性混合效应模型(计数型,泊松分布)

summary(q)

install.packages('car')

install.packages('openxlsx')

library(car)

install.packages('nlme')

library(nlme)

Anova(q,test='Chisq')线性模型的误差分析(似然比卡方测验,Wald法)

lsmeans(q,pairwise~chuli,adjust = "tukey")线性模型的多重比较(tukey法)