执行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法)