结合R中的频率表

时间:2015-04-09 14:09:36

标签: r merge data-processing

我有一个载体,其中包含所测分子的各自分子类别内的分子频率。我还有一个载体,其中包含通过变量选择鉴定的重要分子的每类频率。如何将这两个向量合并到一个数据帧中并用0(用R)填充空频率?

这是一个可行的例子:

full = rep(letters[1:4], 4:7)
fullTable = table(full)
sub = rep(letters[1:2], c(2, 4))
subTable = table(sub)

我希望桌子看起来像:

print(data.frame(Letter=letters[1:4], fullFreq=c(4, 5, 6, 7), subFreq=c(2, 4, 0, 0)))

2 个答案:

答案 0 :(得分:0)

试试这个(我猜你在最后一行意味着subTable=table(sub)):

 res<-merge(as.data.frame(fullTable),as.data.frame(subTable),by.x=1,by.y=1,all=TRUE)
 colnames(res)<-c("Letter","fullFreq","subFreq")
 res[is.na(res)]<-0

答案 1 :(得分:0)

使用库dplyr

library(dplyr)

full=rep(letters[1:4], 4:7)
sub=rep(letters[1:2], c(2,4))
df <- data.frame(Letter=unique(c(full, sub)))


df <- df %>% 
     left_join(as.data.frame(table(full)), by=c("Letter"="full")) %>% 
     left_join(as.data.frame(table(sub)), by=c("Letter"="sub"))

df[is.na(df)] <- 0
df