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))