【问题标题】:Plotting Number of Times Value Appears in Two Dataframes in R绘制 R 中两个数据框中出现值的次数
【发布时间】:2021-04-17 23:06:03
【问题描述】:

我有两组数据。每一个都包含一个分子名称列和一个分子在样品中出现次数的列。我想创建一个散点图,其中包含分子在 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 将是 (10,1) 对应于 A,点 #2 将是 (1,3),点 #3 将是 (0,50),依此类推。我不想标记我的观点,因为我的数据集包含数以万计的分子。

【问题讨论】:

    标签: r dataframe plot scatter-plot


    【解决方案1】:

    尝试加入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()
    
    

    产生

    【讨论】:

      【解决方案2】:

      你需要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)
      

      输出:

      【讨论】:

        猜你喜欢
        • 2017-03-27
        • 1970-01-01
        • 2018-10-22
        • 2021-04-02
        • 1970-01-01
        • 1970-01-01
        • 2022-07-05
        • 2015-09-09
        • 1970-01-01
        相关资源
        最近更新 更多