【问题标题】:Scatterplot matrix using two dataframes in R在 R 中使用两个数据框的散点图矩阵
【发布时间】:2015-08-15 07:39:38
【问题描述】:

我想在我的数据框中的一组变量(不是全部!)之间创建一个散点图矩阵。

我的数据帧的快速快照:

V1    V2    V3    V4    V5    V6    V7    R1    R2
.08  .05   .93   .1    .21   .32    .21   .09  .07
.43  .12   .1   .40    .07   .98    .25   .10  .05

两组分别是V1到V7R1-R2。所以我想要实现的是V1-R1V1-R2V2-R1之间的情节...... .V7-R2。我不想绘制 V1-V2V1-V4 等。

我想一个简单的方法就是将我的数据框分成两部分,这将使我能够实现我的目标。

所以我将我的数据框分成如下两部分:

dataFrame1<-dataframe[,1:7]

dataFrame2<-dataframe[,8:9]

就从 R 中获取相关表而言,这很有效:

cor(dataFrame1,dataFrame2)

但是绘图位有点挑战。

到目前为止,我已经尝试过 ggpairscarscatterplotMatrix,但它们似乎都不起作用。

对于 ggpairs 使用当前代码如下:

ggpairs (dataFrame1, dataFrame2)

我收到以下错误消息

确保您的“列”值为正数。

当然,上面的 dataFrame 只是整个数据集的一个样本,因此您在 R1 和 R2 中看不到任何负数。

我不想在 ggplot2 中手动执行此操作,然后使用 glob 合并到单个绘图中。此外,我不想按原样绘制所有变量的矩阵,因为这不是我想要实现的目标。

还有其他方法可以达到我的目标吗?

谢谢。

【问题讨论】:

    标签: r ggplot2 correlation scatter-plot


    【解决方案1】:

    这是一个 dplyr 解决方案。首先将原始 df 子集到两个不同的 data.frames 中;将它们变成 ggplot 所需的长格式;然后按行合并 data.frames(我为此添加了一个 id 变量)并使用facet_grid 绘制结果。

    # Simulating data
    df <- data.frame(
      id = 1:100,
      V1 = rnorm(100),
      V2 = rnorm(100),
      V3 = rnorm(100),
      R1 = rnorm(100),
      R2 = rnorm(100),
      R3 = rnorm(100))
    
    library(dplyr)
    library(tidyr)
    
    # Subset the data.frames
    df1 <- select(df,id,starts_with("V"))
    df2 <- select(df,id,starts_with("R"))
    
    # Turn them both to long form and merge them
    dft <- gather(df1,var,value,-id) %>% 
      left_join(gather(df2,var,value,-id),by="id")
    
    ggplot(data = dft,aes(x = value.x,y=value.y)) +
      geom_point() +
      facet_grid(var.x~var.y)
    

    附带说明,您的代码会产生此错误,因为 ggpairs 不希望有两个 data.frame。见?GGally::ggpairs

    ggpairs(data, columns = 1:ncol(data) ...)

    第二个参数应该是列索引;你正在传递一个完整的data.frame。 ggpairs 似乎无法做你想做的事,但如果你只是将整个原始数据框传递给它,它会将每个变量相互绘制:ggpairs(dataframe)

    【讨论】:

      猜你喜欢
      • 2021-12-12
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多