绘制 R 中两个数据框中值出现的次数

Plotting Number of Times Value Appears in Two Dataframes in R

我有两组数据。每个包含一个分子名称列和一个分子在样本中出现次数的列。我想创建一个散点图,其中分子在 x 轴上的数据集 #1 中出现的次数以及它在数据集 #2 中出现的次数。如果一个分子在一个数据集中而不在另一个数据集中,则它出现 0 次。

示例:

dat1 <- data.frame(
name = c("A", "B", "D", "E")
count = c(10, 1, 30, 10)
)
dat2 <- data.frame(
name = c("A", "B", "C", "F")
count = c(1, 3, 50, 40)
)

点 #1 对应于 A,点 #2 为 (1,3),点 #3 为 (0,50),依此类推。我不想标记我的观点,因为我的数据集包含数万个分子。

尝试加入 data.frames

full_join(dat1, dat2, by="name") %>% 
  mutate_all(function(xx) ifelse(is.na(xx), 0, xx)) %>% 
  ggplot(aes(count.x, count.y)) +
  geom_point()

产生

你需要 full_join():

library(dplyr)
library(ggplot2)
#Data
dat1 <- data.frame(
  name = c("A", "B", "D", "E"),
  count = c(10, 1, 30, 10)
)
dat2 <- data.frame(
  name = c("A", "B", "C", "F"),
  count = c(1, 3, 50, 40)
)
#Code
dat1 %>% full_join(dat2 %>% rename(count2=count)) %>%
  replace(is.na(.),0) %>%
  ggplot(aes(x=count,y=count2))+
  geom_point()+
  geom_text(aes(label=name),vjust=-0.5)

输出: