在 R 中组合频率表

Combining frequency tables in R

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

这是一个可行的例子:

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

我希望 table 看起来像:

print(data.frame(Letter=letters[1:4], fullFreq=c(4, 5, 6, 7), subFreq=c(2, 4, 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

与图书馆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