Hi, table.x<- as.table(as.matrix(read.table(text=" A B C D 2 4 6 5 ",sep="",header=TRUE))) table.y<- as.table(as.matrix(read.table(text=" C D 5 1 ",sep="",header=TRUE))) library(plyr) library(reshape2) vec1<-rowSums(join(melt(table.x)[,-1], melt(table.y)[,-1],by="Var2")[,-1],na.rm=TRUE) names(vec1)<- colnames(table.x) table.xy<-as.table(vec1) table.xy # A B C D # 2 4 11 6
#or dat1<-merge(table.x,table.y,all=TRUE)[,-1] table.xy<-as.table(with(dat1,tapply(Freq,list(Var2),FUN=sum))) table.xy # A B C D # 2 4 11 6 str(table.xy) # 'table' int [1:4(1d)] 2 4 11 6 # - attr(*, "dimnames")=List of 1 # ..$ : chr [1:4] "A" "B" "C" "D" #or datNew<-join(as.data.frame(table.x),as.data.frame(table.y),type="full")[,-1] res<-aggregate(Freq~Var2,data=datNew,sum)[,2] names(res)<- colnames(table.x) table.xy<-as.table(res) table.xy # A B C D # 2 4 11 6 A.K. >This is probably really simple, but I'm missing something: >I have two tables generated with the table() function that have overlapping columns. I want to add the entries where the column is the same. For >instance: >table.x >A B C D >2 4 6 5 > >table.y > >C D >5 1 > >Output needed: >A B C D >2 4 11 6 ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.