график из информационного кадра, содержащего списки в виде значений столбцов - PullRequest
2 голосов
/ 14 апреля 2019

Я возился с пакетом purrr, и теперь у меня возникла уникальная проблема. Я хочу построить график данных, где значения представляют собой список, содержащий значения внутри столбца.

Состав:

a b x           y
1 1 c(1,2,3,4) c(4,5,6,7)
1 2 c(1,2,3,4) c(5.4,6,6.5,7)

Попытка решения:

library("tidyverse")

# Define a named list of parameter values
temp = list(a = seq(1,5,1),
           b = seq(0.1,3,1)) %>% cross_df()

# create two new columns
x <- seq(1,5,0.1)
y <- 2.3 * x

# add these as a list
temp$x <- list(x)
temp$y <- list(y)

ggplot(data=temp, aes(x=unlist(x),y=unlist(y),color=a)) + 
  geom_point() + 
  ggtitle("Plot of Y vs. X shown by colour of a")

Ошибка:

  1. Ошибка: эстетика должна иметь длину 1 или совпадать с данными (15): x, y, цвет с использованием unlist
  2. Ошибка: дискретное значение подается в непрерывную шкалу , когда не используется unlist

1 Ответ

0 голосов
/ 14 апреля 2019

Вам необходимо разделить элементы списка на отдельные строки, что можно сделать с помощью unnest

library(tidyverse)

temp %>%
  unnest() %>%
  ggplot() + 
  aes(x,y,color=a) + 
  geom_point() + 
  ggtitle("Plot of Y vs. X shown by colour of a")

enter image description here

...