绘制 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)
输出:
我有两组数据。每个包含一个分子名称列和一个分子在样本中出现次数的列。我想创建一个散点图,其中分子在 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)
输出: