首页 > 解决方案 > 创建一个包含 4 个向量的 DataFrame,然后标记然后按向量源对值进行分组

问题描述

我正在尝试用四个向量创建一个 df,每个向量都有 10,000 个观察值。我需要所有 40,000 个观察值基本上都在 df 内的一个向量中,然后我需要第二个向量,根据它们来自的集合(向量 1、向量 2、向量 3 或向量 4)对它们进行分组。帮助!

这是一个显示示例的尝试:

x1 <- c(1,2,3,...10,000)
x2 <- c(1,2,3,...10,000)
x3 <- c(1,2,3,...10,000)
x4 <- c(1,2,3,...10,000)

基本上,我认为,我需要将它们组合成一个 df,但我想保留对值来自哪个向量的引用。因此,假设 df 中的一个向量存储所有 40,000 个观测值,第二个向量根据观测值的源向量将它们分类为 1、2、3、4。我认为我需要这样做,因为我想要一个 facet_graph 图。

我知道我不擅长问这个问题,但我阅读了常见问题解答/文档,我真的很努力。

谢谢!

标签: rdataframevector

解决方案


要将数据设为长格式,请为每个向量创建一个新的数据框,并在向量上有一个包含数据的列,然后将行绑定在一起。

library(dplyr)
library(ggplot2)

v1 <- c(1:15)
v2 <- c(16:30)
v3 <- c(31:45)
v4 <- c(46:60)

df <- bind_rows(
  data_frame(vec = 1, val = v1),
  data_frame(vec = 2, val = v2),
  data_frame(vec = 3, val = v3),
  data_frame(vec = 4, val = v4)
)

df %>%
  ggplot(aes(x = val)) +
  geom_area(stat = "bin", bins = 10) +
  facet_grid(. ~ vec)

推荐阅读