R中使用merge()函数合并数据

Python014

R中使用merge()函数合并数据,第1张

R语言的merge函数可以实现类似SQL的有点类似 left join right join 或者类似union的效果。

执行merge函数时,函数自动会找到两个数据框df1和df2共有的列,即id那一列(即相当于by= "id"),当参数all= FALSE时,会将两个数据框中该列数值相等的那些行输出来,类似于对这两个数据框的id这一列求交集(intersection)。此例中是id为2或7这两行。此外,还可以发现df1和df2的输入顺序不会影响最终结果,仅仅会影响输出结果中heights和weights这两列的顺序。

更详细可以参考 http://rstudio-pubs-static.s3.amazonaws.com/13602_96265a9b3bac4cb1b214340770aa18a1.html

by参数的使用

上面的示例中by参数只有一个值,如果有两个数值(即长度为2的向量),也就是两个数据框中有共同的两列。

为两个数据框分别添加一列后,这样它们就有了共同的两列。当运行merge函数后发现,函数会自动找到共同的列,然后找到id和sex这两列中共有的数值。此外,如果只设定by= "id"的话,则两数据框中共有的sex那一列则会以sex.x和sex.y形式输出。

非常好学。输入几行代码,即可得到结果。

R不但数据分析好用,而且作图能力极好,推荐你用。

下面是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法)