Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将列表列表转换为TIBLE_R_List_Tidyverse_Tibble - Fatal编程技术网

R 将列表列表转换为TIBLE

R 将列表列表转换为TIBLE,r,list,tidyverse,tibble,R,List,Tidyverse,Tibble,我已经读过了,在我的例子中,我无法理解它,在我的tibble中有ggplots 假设我有: library(tidyverse) f <- function(n) { p <- tibble(x = rnorm(30, n)) %>% ggplot(aes(x = x)) + geom_density() return(list(n = n, p = p)) } m <- map(seq(10), f) i、 e.每个单元格是一个列表,包含一个元素。 我

我已经读过了,在我的例子中,我无法理解它,在我的
tibble
中有
ggplot
s

假设我有:

library(tidyverse)
f <- function(n) {
  p <- tibble(x = rnorm(30, n)) %>%
    ggplot(aes(x = x)) + geom_density()
  return(list(n = n, p = p))
}
m <- map(seq(10), f)
i、 e.每个单元格是一个列表,包含一个元素。 我想将每个列表转换为一个标量

我所尝试的:

  • 我已经对列
    n
    使用了
    map\u int
    ,但是如何处理列
    p
  • unest
    也适用于列
    n
    ,但不适用于
    p
  • 与列
    p
    上的
    unlist
    相同(即使是
    recursive=FALSE
    • 这里有一种可能性。 修改函数,使其仅返回绘图。然后,只使用列
      n
      创建tible,然后使用
      map
      创建列
      p

      f2 <- function(n) {
        tibble(x = rnorm(30, n)) %>%
          ggplot(aes(x = x)) + geom_density()
      }
      
      tibble(n = 1:10,
             p = map(n, f2))
      
      f2%
      ggplot(aes(x=x))+几何密度()
      }
      tibble(n=1:10,
      p=map(n,f2))
      
      然后列
      n
      是一个整数
      p
      是一个列表,但这是您能得到的最好的列表,因为tibble的列不能包含
      gg
      ggplot
      类型的对象,而只能包含这些对象的列表


      据我所知,唯一可能的列类型是:
      int
      dbl
      date
      dttm
      factor
      logical
      character
      在现实生活中,
      f
      计算很多事情,所以我不赞成这个解决方案。你能添加一个链接来说明为什么
      tibble
      s不能包含
      gg
      s吗?也许高级R的第3.6章:保持你的函数是
      tibble(n=seq_len(n),p=map(n,f))
      也能工作,其中
      n=10
      ?@RonakShah:好吧,我想把
      f
      的输出用作
      n
      。我承认这个例子可能过于简化了。
      f2 <- function(n) {
        tibble(x = rnorm(30, n)) %>%
          ggplot(aes(x = x)) + geom_density()
      }
      
      tibble(n = 1:10,
             p = map(n, f2))