面向两个数据集,两个在同一个面上具有相同索引的列

时间:2016-08-11 20:52:18

标签: r

我一直在寻找几个小时,当然也发现了一些类似的问题,但我仍然没有成功解决我的问题。

这是我的问题。我有两个数据集相同的列名,在这个例子中也是相同的行名。

让我们说数据集是:

t <- seq(1, 20, by = 0.5)

num_of_rows <- length(t)

df1 <- data.frame(A = runif(num_of_rows), B = runif(num_of_rows), C = runif(num_of_rows), D = runif(num_of_rows), F = runif(num_of_rows))

dimnames(df1)[[1]] <- t

df2 <- data.frame(A = runif(num_of_rows), B = runif(num_of_rows), C = runif(num_of_rows), D = runif(num_of_rows), F = runif(num_of_rows))

dimnames(df2)[[1]] <- t


df1<-melt(as.matrix(df1))
df2<-melt(as.matrix(df2))
colnames(df1) <- c("X1", "X2", "value")
colnames(df2) <- c("X1", "X2", "value")


ggplot() + geom_line(df1, aes(X1, value, color=factor(X2)), linetype=2) + geom_line(df2, aes(X1, value, color=factor(X2)) + facet_wrap(~X2)

我想要的是将这些数据集绘制为构面,每个构面都具有来自两个数据集的具有相同索引的列。我必须遵循模拟问题的答案,即融化,为数据集号分配标签等等,但我仍然接受十个方面。前五个来自第一个数据集,后五个来自第二个数据集。我很感激您提供的任何帮助。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

我假设你想要5个方面,每个方面有两条线由数据来源区分。如果是这样,我们的想法是设置您的审美colour=factor(src)(或者您选择指明数据的来源),然后facet_wrap设置X2(正如您所做的那样)。

df1$src <- 1
df2$src <- 2
d <- rbind(df1, df2)

ggplot(d) + 
  geom_line(aes(X1, value, colour=factor(src))) + 
  facet_wrap(~X2, ncol=5)

enter image description here